php相册功能实现(包含php图片上传,后台管理,浏览和删除)教程例子
相册功能实现(包含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 " ";
- $p_count = ceil($temp[0]/8);
- echo "分".$_count."页显示";
- echo " ";
- echo "当前显示第".$page."页";
- echo " ";
- 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>
- <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图片上传,后台管理,浏览和删除)教程例子的更多相关文章
- Asp.Net Core Web Api图片上传(一)集成MongoDB存储实例教程
Asp.Net Core Web Api图片上传及MongoDB存储实例教程(一) 图片或者文件上传相信大家在开发中应该都会用到吧,有的时候还要对图片生成缩略图.那么如何在Asp.Net Core W ...
- Django(十九)文件上传:图片上传(后台上传、自定义上传)、
一.基本设置 参考:https://docs.djangoproject.com/zh-hans/3.0/topics/http/file-uploads/ 1)配置project1/settings ...
- plupload简易应用 多图片上传显示预览以及删除
<script> var uploader = new plupload.Uploader({ //实例化一个plupload上传对象 browse_button: 'btnBrowse' ...
- php利用七牛云的对象存储完成图片上传-高效管理图片
在搭建个人博客时,大家都会买一台云服务器.可是图片的存放一直是一个问题,冷月帮大家找到一个免费的第三方平台对象存储-七牛云.大家可以把图片上传到七牛云的对象存储,大大节约服务器的压力. 首先,大家在使 ...
- yii2-basic后台管理功能开发之四:图片上传FileInput
我采用的是 kartik-v/yii2-widget-fileinput的文件上传插件,大家可以去github查看详细的安装方法和使用说明. 需求:上传图片+可以预览缩略图 在这里说说我碰到的问题:限 ...
- 微信小程序实现图片上传,预览,删除
wxml: <view class='imgBox'> <image class='imgList' wx:for="{{imgs}}" wx:for-item= ...
- kindeditor扩展粘贴图片功能&修改图片上传路径并通过webapi上传图片到图片服务器
前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...
- kindeditor扩展粘贴截图功能&修改图片上传路径并通过webapi上传图片到图片服务器
前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功 ...
- CKEditor与dotnetcore实现图片上传
CKEditor的使用 1.引入js库 <script src="https://cdn.ckeditor.com/4.6.1/standard-all/ckeditor.js&quo ...
随机推荐
- 【转】关于FLASH中图文混排聊天框的小结
原文链接 图文混排也是FLASH里一个很古老的话题了,我们不像美国佬那样游戏里面聊天框就是聊天框,全是文字干干净净,也不像日本人发明了并且频繁地使用颜文字.不管是做论坛.做游戏,必定要实现的一点就是带 ...
- android shape的使用(转)
shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下: <?xml version="1.0" encoding="ut ...
- 使用Gemini构建自己的IDE
你的项目中的领域特定语言是否需要自己的IDE?Visual Studio Shell是选择之一,但是过于庞大不易部署,而且很难使用.Tim Jones的Gemini框架是一个轻量级替代方案. Gemi ...
- 你必须知道的指针基础-7.void指针与函数指针
一.不能动的“地址”—void指针 1.1 void指针初探 void *表示一个“不知道类型”的指针,也就不知道从这个指针地址开始多少字节为一个数据.和用int表示指针异曲同工,只是更明确是“指针” ...
- NoSQL初探之人人都爱Redis:(2)Redis API与常用数据类型简介
一.Redis API For .Net 首先,不得不说Redis官方提供了众多的API开发包,但是目前Redis官方版本不支持.Net直接进行连接,需要使用一些第三方的开源类库.目前最流行的就是Se ...
- 为什么使用Binder而不是其他IPC机制
本文搬运自:Advantages of using Binder for IPC in Android 使用Binder而不是其他(Semaphores , Message Queue, PIPES) ...
- 如何在 ASP.NET MVC 中集成 AngularJS(3)
今天来为大家介绍如何在 ASP.NET MVC 中集成 AngularJS 的最后一部分内容. 调试路由表 - HTML 缓存清除 就在我以为示例应用程序完成之后,我意识到,我必须提供两个版本的路由表 ...
- Module-Zero之启动模板
返回<Module Zero学习目录> 概览介绍 社交登录 基于Token的认证 单元测试 概览介绍 使用ABP和Module-Zero开始一个新的项目最简单的方式通过ABP官网的模板页面 ...
- Maven 最佳实践
持续不断地学习maven Maven是一个很好的工具,但同时也拥有陡峭的学习曲线.因此,将 http://books.sonatype.com/mvnref-book/reference/ 加入到你的 ...
- WPF入门教程系列二十一——DataGrid示例(一)
前面我们学习了ListView控件的使用示例,今天我们来学习DataGrid的有关知识.提到DataGrid 不管是Asp.Net中的网页开发还是WinForm应用程序开发都会频繁使用.通过它我们可以 ...