相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子包括五个部分:

一、相册首页

<html>
<head>
<meta charset="utf-8">
<title>相册首页</title>
<style>
body{
width:800px;
margin:0 auto;
test-align:center;
}
</style>
</head>
<body>
<h1>The simple photo album.</h1>
<center>
<?php
error_reporting(0);
if(!$_GET["page"]){
$page = 1;
}else
$page = $_GET["page"];
$filename = "data.dat";
$myfile = file($filename);
$z = $myfile[0];
if($z == NULL){
echo "目前记录条数为:0";
}else{
$temp = explode("||",$myfile[0]);
echo "共有".$temp[0]."条内容";
echo "&nbsp;&nbsp;&nbsp;&nbsp;";
$p_count = ceil($temp[0]/8);
echo "分".$_count."页显示";
echo "&nbsp;&nbsp;&nbsp;&nbsp;";
echo "当前显示第".$page."页";
echo "&nbsp;&nbsp;&nbsp;&nbsp;";
echo "<br>";
if($page != ceil($temp[0]/8)){
$current_size = 8;
}else{
$current_size = $temp[0]%8;
}
if($current_size == 0){
$current_size = 8;
}
for($i=0;$i<ceil($current_size/4);$i++){
for($j=0;$j<4;$j++){
$temp = explode("||", $myfile[$i*4+$j+($page-1)*8]);
if(($i*4+$j+($page-1)*8)<$z){
$imgfile = "./images/".$temp[1];
$flag = getimagesize($imgfile);
echo "<a href=viewimage.php?id=".$temp[0]."><img src=/test/images/".$temp[1];
if($flag[0]>180||$flag[1]>100){
echo " width=180 height=".ceil($flag[1]*180/$flag[0]);
}
echo " border=\"0\"></a>";
}else{
echo ""; }
} }
echo "</table>";
}
echo "<p>";
$prev_page = $page - 1;
$next_page = $page + 1;
if($page <= 1){
echo "第一页 | ";
}else{
echo "<a href='$PATH_INFO?page=1'>第一页</a> | ";
}
if($prev_page < 1){
echo "上一页 | ";
}else{
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>
<a href="upfile.php">Upload Files</a>
</body>
</html>

二、后台管理

<html>
<head>
<meta charset="utf-8">
<title>后台处理页面</title>
</head>
<body>
<?php
error_reporting(1);
if($_FILES['upfile']['name'] == NULL){
echo "No file choice.";
echo "<a href='upfile.php'>返回</a>";
}else{
$filepath = "/Library/WebServer/Documents/test/images/";
$tmp_name = $_FILES['upfile']['tmp_name'];
$filename = $filepath.$_FILES['upfile']['name'];
// echo $filename;
if(move_uploaded_file($tmp_name,$filename)){
$dataname = "data.dat";
$myfile = file($dataname); if($myfile[0] == ""){ $fp = fopen($dataname, "a+");
fwrite($fp,"1||".$_FILES['upfile']['name']."||".$_POST["content"]."||".date(Y年m月d日)."\n");
fclose($fp);
}else{
$temp = explode("||", $myfile[0]);
$temp[0]++;
$fp = fopen($dataname, "r");
$line_has = fread($fp,filesize("$dataname"));
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></p>";
echo "指定文件已经上传成功!";
echo "<p></p>";
echo "点<a href='index.php'>返回</a>";
}else{
echo "文件上传失败!";
}
}
?>
</body>
</html>

三、图片上传

<html>
<head>
<meta charset="utf-8">
<title>相册上传页面</title>
</head>
<body>
<script language="javascript">
function Juge(theForm){
if(theForm.upfile.value==""){
alert("Please choice file!");
theForm.upfile.focus();
return (false);
}
if(theForm.content.value==""){
alert("Please input image information!");
theForm.content.focus();
return (false);
}
if(theForm.content.value.length>60){
alert("The information must less than 60 chars.");
theForm.content.focus();
return (false);
}
}
</script>
<center>
<h1>Image album upload page</h1>
<p>
<a href="index.php">返回首页</a>
<table border="1">
<form enctype="multipart/form-data" action="system.php" method="post" onsubmit="return Juge(this)">
<tr>
<td>选择图片:</td>
<td><input name="upfile" type="file"></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>
</form>
</table>
</p>
</center>
</body>
</html>

四、图片浏览

<html>
<head>
<meta charset="utf-8">
<title>查看图片</title>
</head>
<body>
<center>
<h1>View images.</h1>
<?php
error_reporting(0);
if(!$_GET["id"]){
echo "No assign id.";
echo "<a href='index.php'>首页</a>";
exit();
}else{
?>
<a href="index.php">返回首页</a>&nbsp;&nbsp;&nbsp;&nbsp;
<a href="delimage.php?id=<?php echo $_GET['id'] ?>">删除图片</a><br>
<?php
$id = $_GET["id"];
$filename = "data.dat";
$myfile = file($filename);
$z = $myfile[0];
if($z == ""){
echo "目前记录条数为0";
}else{
$temp = explode("||", $myfile[$z-$id]);
echo "<p>"."文件名:".$temp[1]."</p>";
echo "<p><img src=/test/images/".$temp[1]."></p>";
echo "<p>图片简介:".$temp[2]."</p>";
echo "<p>上传日期:".$temp[3]."</p>";
}
}
?>
</center>
</body>
</html>

五、删除图片

<html>
<head>
<meta charset="utf-8">
<title>删除图片</title>
</head>
<body>
<?php
error_reporting(0);
if(!$_GET["id"]){
echo "No id assign.";
echo "<br>";
echo "<a href='index.php'>首页</a>";
exit();
}else{
$id = $_GET["id"];
$filename = "data.dat";
$myfile = file($filename);
$z = $myfile[0];
if($z == NULL){
echo "目前记录条数为:0";
}else{
$temp = explode("||", $myfile[$z-$id]);
print_r($temp);
$filepath = "/Library/WebServer/Documents/test/images/";
$imgfile = $filepath.$temp[1];
echo $imgfile;
unlink($imgfile);
for($i=0;$i<($z-$id);$i++){
$temp2 = explode("||", $myfile[$i]);
$temp2[0]--;
if($temp2[0]>0)
$text2 = $text2.$temp2[0]."||".$temp2[1]."||".$temp2[2]."||".$temp2[3];
}
for($i=($z-$id+1);$i<$z;$i++){
$text1 = $text1.$myfile[$i];
}
$fp = fopen($filename, "w");
fwrite($fp, $text2);
fwrite($fp, $text1);
fclose($fp);
echo "指定文件已经删除成功!";
echo "<a href='index.php'>首页</a>";
} }
?>
</body>
</html>

php相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子的更多相关文章

  1. Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程

    Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一) 图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core W ...

  2. Django(十九)文件上传:图片上传(后台上传、自定义上传)、

    一.基本设置 参考:https://docs.djangoproject.com/zh-hans/3.0/topics/http/file-uploads/ 1)配置project1/settings ...

  3. plupload简易应用 多图片上传显示预览以及删除

    <script> var uploader = new plupload.Uploader({ //实例化一个plupload上传对象 browse_button: 'btnBrowse' ...

  4. php利用七牛云的对象存储完成图片上传-高效管理图片

    在搭建个人博客时,大家都会买一台云服务器.可是图片的存放一直是一个问题,冷月帮大家找到一个免费的第三方平台对象存储-七牛云.大家可以把图片上传到七牛云的对象存储,大大节约服务器的压力. 首先,大家在使 ...

  5. yii2-basic后台管理功能开发之四:图片上传FileInput

    我采用的是 kartik-v/yii2-widget-fileinput的文件上传插件,大家可以去github查看详细的安装方法和使用说明. 需求:上传图片+可以预览缩略图 在这里说说我碰到的问题:限 ...

  6. 微信小程序实现图片上传,预览,删除

    wxml: <view class='imgBox'> <image class='imgList' wx:for="{{imgs}}" wx:for-item= ...

  7. kindeditor扩展粘贴图片功能&修改图片上传路径并通过webapi上传图片到图片服务器

    前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...

  8. kindeditor扩展粘贴截图功能&修改图片上传路径并通过webapi上传图片到图片服务器

    前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...

  9. CKEditor与dotnetcore实现图片上传

    CKEditor的使用 1.引入js库 <script src="https://cdn.ckeditor.com/4.6.1/standard-all/ckeditor.js&quo ...

随机推荐

  1. DNS域名服务器

    DNS是用来解析域名的,IP就相当于地址一样,不知道IP就没法访问指定网络.要上PC6下载站,输入www.pc6.com, 得先问问DNS大哥www.pc6.com在哪,然后Dns告诉你后,就上去了w ...

  2. 平凡的KTV后台,不平凡的KTV数据

    之前就是说过“一个项目有很多重要的步骤以及功能”,那我们现在就来看看对于KTV项目来说:后台是处于什么样的重要作用! 首先就得了解KTV后台的一些功能了: 1.歌曲管理 .歌手管理 .设置资源路径 2 ...

  3. asp.net 验证码(一)Session

    1.模板页 //创建网页模板 输入验证码文本框 并且将文本框中的内容发送的后端验证中去 <p>请输入验证码:<input type="text" name=&qu ...

  4. ES6(四) --- 正则 Number Math

    想学vue了  重启ES6的学习之路 在ES5 中正则的构造器  RegExp  不支持第二个参数 ES6 做了调整   第二个参数表示正则表达式的修饰符(flag) var regex = new ...

  5. Android课程---远程服务器存储

    在使用Volley进行获取数据时,需要事先准备环境:在libs里面导入一个Volley.jar包,在网上都有,可以下载下来导入,或者自己电脑上有DT的,自己合成一个包也行. WebActivity.j ...

  6. 使用Junit等工具进行单元测试

    一.类的定义: 类是同一事物的总称,类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类. 二.Junit工具的使用: 1.首先新建一个项目叫JUnit_Test,我们编写一个 ...

  7. 协议分析 - DHCP协议解码详解

    协议分析 - DHCP协议解码详解 [DHCP协议简介]         DHCP,全称是 Dynamic Host Configuration Protocol﹐中文名为动态主机配置协议,它的前身是 ...

  8. 达梦7的试用 与SQLSERVER的简单技术对比

    达梦7的试用 与SQLSERVER的简单技术对比 达梦数据库公司推出了他们的数据库服务管理平台,可以在该平台使用达梦数据库而无须安装达梦7数据库 地址:http://online.dameng.com ...

  9. 微软“.Net社区虚拟大会”dotnetConf2015 第二天 无处不在的Xamarin

    今天,微软召开了“.Net 社区虚拟大会”(dotnetConf),包括微软的 Scott Hanselman 和 Xamarin 的 Miguel De Icaza 在内的知名人士,都将在 Chan ...

  10. 日志系统实战(三)-分布式跟踪的Net实现

    介绍 在大型系统开发调试中,跨系统之间联调开始变得不好使了.莫名其妙一个错误爆出来了,日志虽然有记录,但到底是哪里出问题了呢? 是Ios端参数传的不对?还是A系统或B系统提供的接口导致?相信有不少人遇 ...