本帖最后由 惜 于 2018-12-17 14:17 编辑
index.php 图片列表页面
[PHP] 纯文本查看 复制代码 <html>
<head>
<title>简易相册系统首页</title>
</head>
<body>
<center>
<h1>简易相册系统首页</h1>
<p>
<a href="image.php">上传图片</a><p>
<?php
if(!$_GET["page"]) //如果没有参数 page
$page=1; //则显示第一页内容
else
$page=$_GET["page"]; //如果带有参数 page,则显示相应页内容
$filename = "data.dat"; //指定记录数据文件名
$myfile = file($filename); //使用 file()函数把文件所有信息读入一个数组
$z = $myfile[0]; //把数组第一条内容赋值给变量
if($z=="")
{ //如果文件为空,即没有任何图片上传
echo "目前记录条数为:0"; //显示没有记录的信息
}
else
{ //如果有图片上传
$temp=explode("||",$myfile[0]); //读出数组第一条记录到数组
echo "共有".$temp[0]."条内容"; //读出该数组第一个元素(代表记录总条数)
echo " ";
$p_count=ceil($temp[0]/8); //计算总页数为记录总条数除以每页显示条数
echo "分".$p_count."页显示"; //输入总页数
echo " ";
echo "当前显示第".$page."页"; //当前页
echo "<table border='1'>";
if($page!=ceil($temp[0]/8)) //如果当前页不是最后一页
$current_size=8; //当前页最多可显示 8 条记录
else //如果当前页是最后一页
$current_size=$temp[0]%8; //当前页显示的条数为总条数除以 8 的余数
if($current_size==0)
$current_size=8; //如果正好是 8 的倍数则显示 8 条内容
for($i=0;$i<ceil($current_size/4);$i++) //通过循环输出行,每行四列
{
echo "<tr>";
for($j=0;$j<4;$j++) //通过循环输出单元格,共 4 个
{
echo "<td>";
$temp=explode("||",$myfile[$i*4+$j+($page-1)*8]);//把相应的记录按“||”分割到数组
if(($i*4+$j+($page-1)*8)<$z) //如果当前数小于总数显示图片
{
$imgfile="images\\".$temp[1]; //显示图片为数组的第 2 个元素
$upload_file = iconv("UTF-8", "GBK", $imgfile); //PHP不能默认识别UTF-8,如果页面是UTF-8 需要转码后使用。
$flag=getimagesize($upload_file); //获得图片的大小以加以大小处理
echo "<a href=8-20.php?id=".$temp[0]."><img src=images\\".$temp[1];
if($flag[0]>180||$flag[1]>100){ //如果图片太大
echo " width=180 height=".$flag[1]*180/$flag[0];
echo " border=\"0\"></a>"; //把图片按比例缩放显示
}
}
else //如果当前数比总记录数大
{
echo "暂时没有图片"; //输出没有图片的信息
echo "</td>"; //结束该单元格
}
}
echo "</tr>"; //结束行
}
echo "</table>"; //结束表格
}
echo "<p>";
//以下内容为分页显示链接
$prev_page=$page-1; //前一页
$next_page=$page+1; //下一页
if ($page<=1) //如果当前页小于等于 1
{
echo "第一页 | ";
}
else //如果当前页大于 1
{
echo "<a href='$PATH_INFO?page=1'>第一页</a> | ";
}
if ($prev_page<1) //如果前一页小于 1
{
echo "上一页 | ";
}
else //如果前一页大于等于 1
{
echo "<a href='$PATH_INFO?page=$prev_page'>上一页</a> | ";
}
if ($next_page>$p_count) //如果下一页大于总页数
{
echo "下一页 | ";
}
else //如果下一页小于等于总页数
{
echo "<a href='$PATH_INFO?page=$next_page'>下一页</a> | ";
}
if ($page>=$p_count) //如果当前页大于等于总页数
{
echo "最后一页</p>\n";
}
else //如果当前页小于总页数
{
echo "<a href='$PATH_INFO?page=$p_count'>最后一页</a></p>\n";
}
?>
</center>
</body>
</html>
image.php 图片上传页面
[PHP] 纯文本查看 复制代码 <html>
<head>
<title>相册管理系统图片上传页面</title>
</head>
<body>
<script language="javascript">
function Juge(theForm)
{
if (theForm.upfile.value == "")
{
alert("请先选择文件!");
theForm.upfile.focus();
return (false);
}
if (theForm.content.value == "")
{
alert("请输入图片说明!");
theForm.content.focus();
return (false);
}
if (theForm.content.value.length>60)
{
alert("图片说明内容太多了,请删除一点再发!");
theForm.content.focus();
return (false);
}
}
function viewmypic(img1,upfile)
{
if (upfile.value)
{
img1.src=upfile.value;
img1.style.display="";
img1.border=1;
}
}
</script>
<center>
<h1>相册管理系统图片上传页面</h1>
<p>
<a href="index.php">返回首页</a>
<table border="1">
<form ENCTYPE="multipart/form-data" ACTION="upload.php" METHOD="POST">
<tr>
<td>选择图片:</td>
<td><input name="upfile" type="file" onchange=viewmypic(img1,this.form.upfile)></td>
</tr>
<tr>
<td>输入说明:</td>
<td><input name="content" type="text">(*限 30 字)</td>
</tr>
<tr>
<td colspan="2"><center><input type=submit value="确认提交">
<input type=reset value="重新选择"></center></td>
</tr>
<tr>
<td colspan="2"><center><img src="" id="img1" style="display:none;"></center></td>
</tr>
</table>
</center>
</body>
</html>
upload.php 图片上传处理程序
[PHP] 纯文本查看 复制代码 <html>
<head>
<html>
<head>
<title>相册管理系统后台处理页面</title>
</head>
<body>
<?php
if($upfile=="none") //如果没有选择相应的文件
{
echo "没有选择文件"; //输出信息
echo "<p>";
echo "点<a href=\"image.php\">这里</a>返回"; //给出返回链接
}
else
{
$filepath="images/"; //定义上传的路径
$filename=$filepath.$_FILES[upfile][name]; //定义文件名
$upload_file = iconv("UTF-8", "GBK", $filename); //先转换名字为 GBK 编码
move_uploaded_file($_FILES["upfile"]["tmp_name"],$upload_file);
$dataname="data.dat"; //定义记录文件名
$myfile=file($dataname); //使用 file()把记录文件按行读入数组
if($myfile[0]=="") //如果记录文件为空
{
$fp=fopen($dataname,"a+");
fwrite($fp,"1||".$_FILES[upfile][name]."||".$_POST["content"]."||".date("Y 年 m 月 d 日")."\n");
fclose($fp); //直接写入行号为 1 的内容
}
else //如果记录文件非空即已经有内容
{
$temp=explode("||",$myfile[0]); //把第一条记录按“||”分割到数组
$temp[0]++; //得出总记录数并自增 1
$fp=fopen($dataname,"r"); //以只读方式打开文件
$line_has=fread($fp,filesize("$dataname")); //使用 fread 读出文件已经存在的内容
fclose($fp); //关闭文件
$fp=fopen($dataname,"w"); //以写入方式打开文件
fwrite($fp,$temp[0]."||".$_FILES[upfile][name]."||".$_POST["content"]."||".date("Y 年 m 月 d 日")."\n");
//写入新的内容
fwrite($fp,"$line_has"); //写入原来已经存在的内容
fclose($fp); //关闭文件
}
echo "<p>";
echo "指定文件已经成功上传!";
echo "<p>";
echo "点<a href=\"index.php\">这里</a>返回"; //给出返回链接
}
?>
</body>
</html>
|