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

一、相册首页

  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>相册首页</title>
  5. <style>
  6. body{
  7. width:800px;
  8. margin:0 auto;
  9. test-align:center;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <h1>The simple photo album.</h1>
  15. <center>
  16. <?php
  17. error_reporting(0);
  18. if(!$_GET["page"]){
  19. $page = 1;
  20. }else
  21. $page = $_GET["page"];
  22. $filename = "data.dat";
  23. $myfile = file($filename);
  24. $z = $myfile[0];
  25. if($z == NULL){
  26. echo "目前记录条数为:0";
  27. }else{
  28. $temp = explode("||",$myfile[0]);
  29. echo "共有".$temp[0]."条内容";
  30. echo "&nbsp;&nbsp;&nbsp;&nbsp;";
  31. $p_count = ceil($temp[0]/8);
  32. echo "分".$_count."页显示";
  33. echo "&nbsp;&nbsp;&nbsp;&nbsp;";
  34. echo "当前显示第".$page."页";
  35. echo "&nbsp;&nbsp;&nbsp;&nbsp;";
  36. echo "<br>";
  37. if($page != ceil($temp[0]/8)){
  38. $current_size = 8;
  39. }else{
  40. $current_size = $temp[0]%8;
  41. }
  42. if($current_size == 0){
  43. $current_size = 8;
  44. }
  45. for($i=0;$i<ceil($current_size/4);$i++){
  46. for($j=0;$j<4;$j++){
  47. $temp = explode("||", $myfile[$i*4+$j+($page-1)*8]);
  48. if(($i*4+$j+($page-1)*8)<$z){
  49. $imgfile = "./images/".$temp[1];
  50. $flag = getimagesize($imgfile);
  51. echo "<a href=viewimage.php?id=".$temp[0]."><img src=/test/images/".$temp[1];
  52. if($flag[0]>180||$flag[1]>100){
  53. echo " width=180 height=".ceil($flag[1]*180/$flag[0]);
  54. }
  55. echo " border=\"0\"></a>";
  56. }else{
  57. echo "";
  58.  
  59. }
  60. }
  61.  
  62. }
  63. echo "</table>";
  64. }
  65. echo "<p>";
  66. $prev_page = $page - 1;
  67. $next_page = $page + 1;
  68. if($page <= 1){
  69. echo "第一页 | ";
  70. }else{
  71. echo "<a href='$PATH_INFO?page=1'>第一页</a> | ";
  72. }
  73. if($prev_page < 1){
  74. echo "上一页 | ";
  75. }else{
  76. echo "<a href='$PATH_INFO?page=$prev_page'>上一页</a> | ";
  77. }
  78. if($next_page > $p_count){
  79. echo "下一页 | ";
  80. }else{
  81. echo "<a href='$PATH_INFO?page=$next_page'>下一页</a> | ";
  82. }
  83. if($page >= $p_count){
  84. echo "最后一页</p>\n";
  85. }else{
  86. echo "<a href='$PATH_INFO?page=$p_count'>最后一页</a></p>\n";
  87. }
  88. ?>
  89. </center>
  90. <a href="upfile.php">Upload Files</a>
  91. </body>
  92. </html>

二、后台管理

  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>后台处理页面</title>
  5. </head>
  6. <body>
  7. <?php
  8. error_reporting(1);
  9. if($_FILES['upfile']['name'] == NULL){
  10. echo "No file choice.";
  11. echo "<a href='upfile.php'>返回</a>";
  12. }else{
  13. $filepath = "/Library/WebServer/Documents/test/images/";
  14. $tmp_name = $_FILES['upfile']['tmp_name'];
  15. $filename = $filepath.$_FILES['upfile']['name'];
  16. // echo $filename;
  17. if(move_uploaded_file($tmp_name,$filename)){
  18. $dataname = "data.dat";
  19. $myfile = file($dataname);
  20.  
  21. if($myfile[0] == ""){
  22.  
  23. $fp = fopen($dataname, "a+");
  24. fwrite($fp,"1||".$_FILES['upfile']['name']."||".$_POST["content"]."||".date(Ymd日)."\n");
  25. fclose($fp);
  26. }else{
  27. $temp = explode("||", $myfile[0]);
  28. $temp[0]++;
  29. $fp = fopen($dataname, "r");
  30. $line_has = fread($fp,filesize("$dataname"));
  31. fclose($fp);
  32. $fp = fopen($dataname, "w");
  33. fwrite($fp,$temp[0]."||".$_FILES['upfile']['name']."||".$_POST["content"]."||".date("Y年m月d日")."\n");
  34. fwrite($fp,"$line_has");
  35. fclose($fp);
  36. }
  37.  
  38. echo "<p></p>";
  39. echo "指定文件已经上传成功!";
  40. echo "<p></p>";
  41. echo "点<a href='index.php'>返回</a>";
  42. }else{
  43. echo "文件上传失败!";
  44. }
  45. }
  46. ?>
  47. </body>
  48. </html>

三、图片上传

  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>相册上传页面</title>
  5. </head>
  6. <body>
  7. <script language="javascript">
  8. function Juge(theForm){
  9. if(theForm.upfile.value==""){
  10. alert("Please choice file!");
  11. theForm.upfile.focus();
  12. return (false);
  13. }
  14. if(theForm.content.value==""){
  15. alert("Please input image information!");
  16. theForm.content.focus();
  17. return (false);
  18. }
  19. if(theForm.content.value.length>60){
  20. alert("The information must less than 60 chars.");
  21. theForm.content.focus();
  22. return (false);
  23. }
  24. }
  25. </script>
  26. <center>
  27. <h1>Image album upload page</h1>
  28. <p>
  29. <a href="index.php">返回首页</a>
  30. <table border="1">
  31. <form enctype="multipart/form-data" action="system.php" method="post" onsubmit="return Juge(this)">
  32. <tr>
  33. <td>选择图片:</td>
  34. <td><input name="upfile" type="file"></td>
  35. </tr>
  36. <tr>
  37. <td>输入说明:</td>
  38. <td><input name="content" type="text">(*限30字)</td>
  39. </tr>
  40. <tr>
  41. <td colspan="2">
  42. <center>
  43. <input type="submit" value="提交">
  44. <input type="reset" value="重置">
  45. </center>
  46. </td>
  47. </tr>
  48. </form>
  49. </table>
  50. </p>
  51. </center>
  52. </body>
  53. </html>

四、图片浏览

  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>查看图片</title>
  5. </head>
  6. <body>
  7. <center>
  8. <h1>View images.</h1>
  9. <?php
  10. error_reporting(0);
  11. if(!$_GET["id"]){
  12. echo "No assign id.";
  13. echo "<a href='index.php'>首页</a>";
  14. exit();
  15. }else{
  16. ?>
  17. <a href="index.php">返回首页</a>&nbsp;&nbsp;&nbsp;&nbsp;
  18. <a href="delimage.php?id=<?php echo $_GET['id'] ?>">删除图片</a><br>
  19. <?php
  20. $id = $_GET["id"];
  21. $filename = "data.dat";
  22. $myfile = file($filename);
  23. $z = $myfile[0];
  24. if($z == ""){
  25. echo "目前记录条数为0";
  26. }else{
  27. $temp = explode("||", $myfile[$z-$id]);
  28. echo "<p>"."文件名:".$temp[1]."</p>";
  29. echo "<p><img src=/test/images/".$temp[1]."></p>";
  30. echo "<p>图片简介:".$temp[2]."</p>";
  31. echo "<p>上传日期:".$temp[3]."</p>";
  32. }
  33. }
  34. ?>
  35. </center>
  36. </body>
  37. </html>

五、删除图片

  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>删除图片</title>
  5. </head>
  6. <body>
  7. <?php
  8. error_reporting(0);
  9. if(!$_GET["id"]){
  10. echo "No id assign.";
  11. echo "<br>";
  12. echo "<a href='index.php'>首页</a>";
  13. exit();
  14. }else{
  15. $id = $_GET["id"];
  16. $filename = "data.dat";
  17. $myfile = file($filename);
  18. $z = $myfile[0];
  19. if($z == NULL){
  20. echo "目前记录条数为:0";
  21. }else{
  22. $temp = explode("||", $myfile[$z-$id]);
  23. print_r($temp);
  24. $filepath = "/Library/WebServer/Documents/test/images/";
  25. $imgfile = $filepath.$temp[1];
  26. echo $imgfile;
  27. unlink($imgfile);
  28. for($i=0;$i<($z-$id);$i++){
  29. $temp2 = explode("||", $myfile[$i]);
  30. $temp2[0]--;
  31. if($temp2[0]>0)
  32. $text2 = $text2.$temp2[0]."||".$temp2[1]."||".$temp2[2]."||".$temp2[3];
  33. }
  34. for($i=($z-$id+1);$i<$z;$i++){
  35. $text1 = $text1.$myfile[$i];
  36. }
  37. $fp = fopen($filename, "w");
  38. fwrite($fp, $text2);
  39. fwrite($fp, $text1);
  40. fclose($fp);
  41. echo "指定文件已经删除成功!";
  42. echo "<a href='index.php'>首页</a>";
  43. }
  44.  
  45. }
  46. ?>
  47. </body>
  48. </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. 【转】关于FLASH中图文混排聊天框的小结

    原文链接 图文混排也是FLASH里一个很古老的话题了,我们不像美国佬那样游戏里面聊天框就是聊天框,全是文字干干净净,也不像日本人发明了并且频繁地使用颜文字.不管是做论坛.做游戏,必定要实现的一点就是带 ...

  2. android shape的使用(转)

    shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下: <?xml version="1.0" encoding="ut ...

  3. 使用Gemini构建自己的IDE

    你的项目中的领域特定语言是否需要自己的IDE?Visual Studio Shell是选择之一,但是过于庞大不易部署,而且很难使用.Tim Jones的Gemini框架是一个轻量级替代方案. Gemi ...

  4. 你必须知道的指针基础-7.void指针与函数指针

    一.不能动的“地址”—void指针 1.1 void指针初探 void *表示一个“不知道类型”的指针,也就不知道从这个指针地址开始多少字节为一个数据.和用int表示指针异曲同工,只是更明确是“指针” ...

  5. NoSQL初探之人人都爱Redis:(2)Redis API与常用数据类型简介

    一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些第三方的开源类库.目前最流行的就是Se ...

  6. 为什么使用Binder而不是其他IPC机制

    本文搬运自:Advantages of using Binder for IPC in Android 使用Binder而不是其他(Semaphores , Message Queue, PIPES) ...

  7. 如何在 ASP.NET MVC 中集成 AngularJS(3)

    今天来为大家介绍如何在 ASP.NET MVC 中集成 AngularJS 的最后一部分内容. 调试路由表 - HTML 缓存清除 就在我以为示例应用程序完成之后,我意识到,我必须提供两个版本的路由表 ...

  8. Module-Zero之启动模板

    返回<Module Zero学习目录> 概览介绍 社交登录 基于Token的认证 单元测试 概览介绍 使用ABP和Module-Zero开始一个新的项目最简单的方式通过ABP官网的模板页面 ...

  9. Maven 最佳实践

    持续不断地学习maven Maven是一个很好的工具,但同时也拥有陡峭的学习曲线.因此,将 http://books.sonatype.com/mvnref-book/reference/ 加入到你的 ...

  10. WPF入门教程系列二十一——DataGrid示例(一)

    前面我们学习了ListView控件的使用示例,今天我们来学习DataGrid的有关知识.提到DataGrid 不管是Asp.Net中的网页开发还是WinForm应用程序开发都会频繁使用.通过它我们可以 ...