当前位置: 首页 > 编程日记 > 正文

PHP文件上传和文件操作案例

<?php
/**文件配置变量$dirname是目录名称*/
session_start();
$dirname = 'upload';
$fileClass = new fileClass($dirname);
$fileClass -> fileCMM();/*文件重命名操作*/
$fileClass -> fileDelete();/*文件删除操作*/
?>
<!DOCTYPE html>
<html>
<head>
<mate charset="utf-8"/>
<title>php文件上传操作</title><style>body{font-size:150%;margin:0px;padding:0px;background-color:#FFEBCD;}.div-top-box{border:solid 1px #008080;width:99.8%;height:100%;background-color:#008080;margin-bottom:10px;}h1{text-align:center;}input{font-size:150%;}.table_top{border-style:solid;border-width:4px 4px 2px 4px;border-color:#708090;padding:60px 10px;width:99%;background-color:#5F9EA0;border-radius:20px;margin:0px auto;}.table_box{width:98%;margin:0px auto;text-align:center;}.trColor{background-color:#5F9EA0;padding:10px 5px;border:solid 1px #000;}.divButton{width:100%;height:200px;border:solid 0px red;background-color:#008080;margin-top:20px;}.message_box{padding:20px;border-style:solid;border-width:0px 4px 4px 4px;border-color:#708090;background-color:#5F9EA0;margin:0px 4px;border-radius:20px;}.text-color-red-bold{color:red;font-weight:bold;}.text-color-red{color:red;}.text-color-top{color:#00008B;font-weight:bold;}.text-button{float:right;margin:130px 50px 0px 0px;}.img{padding:60px 0px 0px 0px;}.submit{border-radius:20px;width:300px;height:100px;background-color:#FF4500;}.submit:hover{background-color:#FF8C00;}.input-box{background-color:#FFD700;}
</style>
</head><body style="font-size:150%;">
<div class="div-top-box">
<h1>文件上传操作界面</h1>
</div>
<!--文件上传操作界面HTML界面--><!-- The data encoding type, enctype, MUST be specified as below --><form enctype="multipart/form-data" action="" method="POST"><!-- MAX_FILE_SIZE must precede the file input field --><input type="hidden" name="MAX_FILE_SIZE" value="9000000" /><!-- Name of input element determines name in $_FILES array -->
<table border="0" class="table_top">
<tr><td>&nbsp;</td><td><p class="text-color-red">*上传图片格式:jpg、gif、png*</p></td>
</tr>
<tr><td><p class="text-color-top">请选择文件上传:</p></td><td><input name="userfile" type="file" value="文件" class="input-box" />
</td>
</tr>
<tr><td colspan="2">&nbsp;</td></tr>
<tr><td></td><td><input class="submit" type="submit" value="确定上传" />
</td>
</table></form>
<!-----文件操作界面完-------><!--文件上传操作--><div class="message_box">
<pre>
<p class="text-color-red-bold">文件上传提示:</p>
<?php$fileClass -> fileLoad();/*文件上传操作*/?>
</pre>
</div>
<!--文件上传操作完--><?php
/**文件遍历操作,并且循环显示在页面上*/$num = 0;$dir_handle = opendir($dirname);
echo '<form action="" method="post">';
echo '<input type="hidden" name="imgsrc" id="imgsrc" value="" />';
echo '<input type="hidden" name="imgname" id="imgname" value="" />';echo '<table border="0"  class="table_box">';while($file = readdir($dir_handle)){$dirfile = $dirname.'/'.$file;if(filetype($dirfile)=='file'){$num++;
?><script>function delete<?php echo $num ?>(){if(confirm("你确定要删除该图片吗?")){var i = document.getElementById("image<?php echo $num ?>").src;document.getElementById("imgsrc").value = i;}else{event.returnValue = false;}}function cmm<?php echo $num ?>(){var msg = prompt("请输入新文件名(无需输入后缀名):","");if(msg != '' && msg != null){document.getElementById("imgname").value = msg;var i = document.getElementById("image<?php echo $num ?>").src;document.getElementById("imgsrc").value = i;}else{event.returnValue = false;}}</script><tr><td colspan="2" class="img"><img src="<?php echo $dirfile ?>" width="800px" id="image<?php echo $num ?>"/></td>
</tr>
<tr class="trColor"><td width="50%" class="trColor">文件名:<?php echo $file ?></td><td width="50%" class="trColor">图像尺寸:
<?phplist($width, $height, $type, $attr) = getimagesize($dirfile);echo "$width$height";
?></td>
</tr>
<tr><td width="50%" class="trColor">文件大小:<?php echo (round((filesize($dirfile)/1024),2)).'K'; ?></td><td width="50%" class="trColor">上次访问时间:<?phpdate_default_timezone_set('Asia/shanghai');echo date("Y-n-j H:i:s", fileatime($dirfile))?></td>
</tr>
<tr><td width="50%" class="trColor"><input name="deleteimg" type="submit" value="删除图片" οnclick="delete<?php echo $num ?>();" /></td><td width="50%" class="trColor"><input name="cmmimg" type="submit" value="重命名" οnclick="cmm<?php echo $num ?>();" /></td>
</tr><?php}}echo '</table>';echo '</form>';closedir($dir_handle);?><div class="divButton">
<?phpecho '<br/>&nbsp;&nbsp;在<b>'.$dirname.'</b>目录下的文件共有<b>'.$num.'</b>个。';
?>
<p class="text-button">版权所有:九天一声啸</p>
</div>
</body>
</html>
<?php
/**文件操作类*/class fileClass{public $dirName;//目录路径function __construct($dirName){$this->dirName = $dirName;if (!file_exists($this->dirName)) {if(!mkdir($this->dirName,0777)){die("<script>alert('创建目录失败!')</script>创建目录失败!");}}}public function fileCMM(){//文件重命名function get_extension($file)/*返回文件的后缀名*/{return pathinfo($file, PATHINFO_EXTENSION);}if(isset($_POST['cmmimg'])){if($_POST['cmmimg']=='重命名'){$imgname = $_POST['imgname'];$imgname_cmm = $this->dirName . '/' .$imgname;$imgsrc_cmm=basename($_POST['imgsrc']);$imgsrc_cmm_1 = $this->dirName . '/' .$imgsrc_cmm;$hzname = get_extension($imgsrc_cmm);$imgnewname = $imgname_cmm.'.'.$hzname;if(!file_exists($imgnewname)){if(!rename($imgsrc_cmm_1,$imgnewname)){echo "<script>alert('重命名失败!')</script>";}}else{echo "<script>alert('文件名重复,重命名失败!')</script>";}}}}public function fileDelete(){//文件删除if(isset($_POST['deleteimg'])){if($_POST['deleteimg']=='删除图片'){$imgsrc=basename($_POST['imgsrc']);$imgsrc = $this->dirName . '/' .$imgsrc;if(!unlink($imgsrc)){echo "<script>alert('删除文件失败!')</script>";}}}}public function fileLoad(){//文件上传if(@$_FILES["userfile"]["name"] <> ''){switch ($_FILES['userfile']['error']){case 0: echo '<script>alert("文件上传成功")</script>';break;case 1: echo '<script>alert("上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值")</script>';break;case 2: echo '<script>alert("上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值")</script>';break;case 3: echo '<script>alert("文件只有部分被上传")</script>';break;case 4: echo '<script>alert("没有文件被上传")</script>';break;case 6: echo '<script>alert("找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进")</script>';break;case 7: echo '<script>alert("文件写入失败")</script>';break;}if ((($_FILES["userfile"]["type"] == "image/gif")
|| ($_FILES["userfile"]["type"] == "image/jpeg")
|| ($_FILES["userfile"]["type"] == "image/png")
|| ($_FILES["userfile"]["type"] == "image/pjpeg"))
&& ($_FILES["userfile"]["size"] < 9000000)){if ($_FILES["userfile"]["error"] > 0){echo "Return Code: " . $_FILES["userfile"]["error"];}else{echo "<br/>上传文件: " . $_FILES["userfile"]["name"];echo "<br/>文件类型: " . $_FILES["userfile"]["type"];echo "<br/>文件大小: " . ($_FILES["userfile"]["size"] / 1024) . " Kb";echo "<br/>临时文件: " . $_FILES["userfile"]["tmp_name"];echo '<br/>';if (file_exists("upload/" . $_FILES["userfile"]["name"])){echo '提示:文件('. $_FILES["userfile"]["name"] . ') 己经存在! ';$fileN = $_FILES["userfile"]["name"];echo "<script>var fileN = \"$fileN\";alert('提示:文件“'+fileN+'”己经存在,上传中止!');</script>";}else{move_uploaded_file($_FILES["userfile"]["tmp_name"],
$this->dirName .'/' .$_FILES["userfile"]["name"]);echo "保存位置: " . $this->dirName . '/'. $_FILES["userfile"]["name"];}}}else{echo '<script>alert("无效的文件")</script>无效的文件!';}}else{echo '提示:没有文件被上传!';}}}
?>

转载于:https://www.cnblogs.com/qingsong/p/5893745.html

相关文章:

将模式对话框的返回值回送(PostBack)到服务端

作者&#xff1a;张老三的专栏 http://blog.csdn.net/billy_zh/在一些应用中&#xff0c;希望将模式对话框的值回送(PostBack)到服务端&#xff0c;也就是执行一个服务端操作&#xff0c;从而刷新页面。举个例子&#xff1a;比方说新建一个订单&#xff0c;此时希望能在模式…

android zip解压缩(含有子目录)

为什么80%的码农都做不了架构师&#xff1f;>>> note: 如果目录中含有中文名称&#xff0c; 要用substr new String(substr.getBytes("8859_1"), "GB2312");这样的语句转换&#xff0c;否则为乱码 /*** 解压缩功能.* 将ZIP_FILENAME文件解压…

用Python实现抖音上的“人像动漫化”特效,原来这么简单

作者 | 黄伟呢来源 | 数据分析与统计学之美前几天&#xff0c;女友拉着我和她玩儿抖音&#xff0c;就是这个人像动漫化的操作&#xff0c;顿时觉得很好玩儿。我心想&#xff1a;Python 既然这么强大&#xff0c;是不是也可以使用 Python 程序来实现这样一个操作呢&#xff1f;哈…

easyui在IE中: SCRIPT1003: 缺少 ':'

转载于:https://www.cnblogs.com/FredLee/p/5894614.html

NumPy学的还不错?来试试这20题

来源 | 早起Python&#xff08;ID: zaoqi-python&#xff09;又到了NumPy进阶修炼专题。NumPy大家应该不陌生了&#xff0c;看了太多的原理讲解之后&#xff0c;用刷题来学习是最有效的方法&#xff0c;本文将带来20个NumPy经典问题&#xff0c;附赠20段实用代码&#xff0c;拿…

tomcat报 Context [] startup failed due toprevious errors

今天同事在实施项目中,遇到一个问题,就是项目布到tomcat服务器上了,却总是找不到访问路径.tomcat报 Context [] startup failed due toprevious errors 当时就觉的很郁闷,项目是本机测试完整打包的.按以前的项目实施也很少出现这样的问题.在网上搜索以下解决方案: ------解决方…

DataGrid中自带的分页功能的使用

作者&#xff1a;木子 http://blog.csdn.net/derny/1、把AllowPaging属性设置为true 并设置PageSize的大小 2、在html页面中设置datagrid的属性OnPageIndexChanged"DataGrid_Page" // //DataGrid_Page 为点击页数的时候激发的事件 3、在程序中加入代码如下&…

34补1-2_3 HA Cluster基础及heartbeat实现HA

HA Cluster基础及heartbeat实现HA配置环境node1&#xff1a;192.168.1.121CentOS6.7node2&#xff1a;192.168.1.122CentOS6.7node3&#xff1a;192.168.1.123CentOS6.7vip 192.168.1.80配置前准备# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 loc…

关于SSL配置的报告

作者&#xff1a;网际浪子专栏&#xff08;曾用名littlehb&#xff09; http://blog.csdn.net/littlehb/一&#xff0c;服务器上装有CA(Certificate Server) 1&#xff0c;服务器上安装CA Win2000中带有CA的安装程序。单击Start&#xff0c;Control Pannel Add/Remove Prog…

认知智能,AI的下一个十年 | AI Procon 2020

整理 | 屠敏 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 60 年间的「三起两落」 &#xff0c;人工智能的沉浮变迁。 在 1956 年的夏天&#xff0c;人工智能在美国达特茅斯大学召开的学术会议之上蹒跚学步&#xff0c;吸引无数研究学者对其智能化的探索以及未来美…

STL 队列queue

q.front() 返回队头元素 q.push(a) 将元素a入队 q.pop() 队头元素出队 q.empty() 如果队列为空 返回ture 否则返回false转载于:https://www.cnblogs.com/xujian9502/archive/2012/02/19/2358055.html

OpenCV——使用ROI进行图像切割

ROI&#xff08;region of interest&#xff09;——感兴趣区域。 1.用途 这个区域是图像分析所关注的重点。圈定这个区域&#xff0c;以便进行进一步的处理。而且&#xff0c;使用ROI指定 想读入的目标&#xff0c;可以减少处理时间&#xff0c;增加精度&#xff0c;给图像处理…

Asp.net动态生成html页面

作者&#xff1a;网际浪子专栏&#xff08;曾用名littlehb&#xff09; http://blog.csdn.net/littlehb/适用于&#xff1a;Microsoft ASP.NET 摘要:asp.net动态生成html页面,适用 简介 此功能适用于后台数据库功能不强的web站点&#xff0c;即大部分文本不是存放在数据库的…

View 5.1 重装上阵(4—基础架构篇)

从底层架构方面来看&#xff0c;VIEW 5.1最大的改进在于引入了Content-Based Read Cache(CBRC) 技术&#xff0c;大大降低了部署桌面虚拟化所带来的IOPS风暴&#xff0c;同时大大降低了对于存储的压力和成本&#xff0c;可谓桌面虚拟化领域的一大福音。 在以往的桌面虚拟化项目…

再见了,Python!!

结合我最近这些年的 Python 学习、开发经验&#xff0c;发现近90%的程序员在学 Python 时都会遇到下面这3个问题&#xff1a;1.想学Python&#xff0c;但不知从何学起&#xff0c;应用方向太多了也不知道该选择什么方向...2.基础入门看似简单&#xff0c;但是进阶实战就举步维艰…

alert在asp.net中如何使用??

改成这样&#xff1a;string str"<script languagejavascript>alert(省局数据不能进行修改&#xff01;);</script>";Page.RegisterStartupScript("dd",str); 提示成功后转到别的页面Response.Write("<script>window.alert(提示语…

.NET工程师必须掌握的知识点

以下内容是转载的 Microsoft SQL Server 数据库 一、创建和维护数据库 1、数据库 SQL Server 数据库的组成部分&#xff1f;&#xff08;参见联机丛书&#xff09;   如何保证数据库的完整性、安全性、并发性&#xff1f;   数据库设计创建步骤&#xff1f;&#xff08;参见…

@程序员:这些瓜没吃到,可以告别互联网了!

最近&#xff0c;程序员届有一个重大好消息&#xff0c;可能很多人还不知道&#xff0c;那就是&#xff1a;国内某些城市已经开始程序员人才补贴了&#xff01;对于人工智能公司的项目开发、人才引进、科技研发&#xff0c;最高按照国拨经费的30%给予配套支持&#xff0c;单个项…

日志分析工具splunt

实验环境 网关 classroom 172.25.8.254 workstation 172.25.8.9 server a-jeth0 172.25.8.10-外网 eth1 192.168.0.x内网 eth2 192.168.1.x备用 -------------------------------------------- 需求&#xff1a; 设计&#xff1a; 原理&#xff1a;日志的作用&#xff0c;1&a…

正则表达式语法规则收集

turnmissile 的 Blog http://blog.csdn.net/turnmissile/ Microsoft已经把正则表达式的规则收录在了msdn里面了&#xff0c;有兴趣的朋友可以自己去研究一下(ms-help://MS.MSDNQTR.2003OCT.1033/cpgenref/html/cpconRegularExpressionsLanguageElements.htm)&#xff0c;这里罗…

Python实现信息自动配对爬虫排版程序

作者 | 李秋键责编 | 晋兆雨头图 | CSDN付费下载自视觉中国在很多的公司项目中&#xff0c;常常有很多对office项目的比较机械化的操作&#xff0c;在这里就可以借助python实现对office的合理排版。而这里我们就将借助海尔公司的出货表爬取对应图片信息&#xff0c;并重新排版成…

关于2012年度土建工程专业中级专业技术资格考试有关问题的通知

关于2012年度土建工程专业中级专业技术资格考试有关问题的通知 现将2012年度土建工程专业初、中级专业技术资格考试、报名、培训工作有关事项通知如下&#xff1a; 一、考试组织 湖南省住房和城乡建设厅、省人力资源和社会保障厅联合成立领导小组&#xff0c;负责对考试工作进行…

Android自定义控件NumberCircleProgressBar(圆形进度条)的实现

Android自定义控件NumberCircleProgressBar(圆形进度条)的实现

做出的C++选择以及背后的原因

要让出资人明白你做出的C选择以及背后的原因。也许出资人会有更容易操作、更快实现的好主意。3、为你提供的日期说明信心范围。很可能管理层不明白你的估算意味着什么&#xff0c;而且你也有可能不理解他们所要的东西。 2&#xff0e;变量的C使用范围每个变量的使用范围只在定义…

拖放 DataGrid 列--来自MSDN

发布日期&#xff1a; 09/19/2004| 更新日期&#xff1a; 09/19/2004Chris SanoMicrosoft Corporation 摘要&#xff1a;了解如何利用基本的 GDI 功能&#xff0c;从而通过 DataGrid 控件获得可视化效果。通过跨越托管边界进行调用&#xff0c;可以利用本机 GDI 功能来执行屏幕…

最近很火的最新一代国际视频标准 VVC 到底是什么?阿里专家为你揭秘

作者 | 叶琰&#xff0c;阿里巴巴达摩院XG实验室视频标准团队负责人责编 | 夕颜头图 | CSDN付费下载自视觉中国2020年7月1日晚上&#xff08;日内瓦时间&#xff09;&#xff0c;第十九次JVET会议在线上落下帷幕&#xff0c;新一代国际视频编码标准VVC第一版&#xff08;Versat…

nesC编程入门

1.接口 NesC程序主要由各式组件&#xff08;component&#xff09;构成&#xff0c;组件和组件之间通过特定的接口&#xff08;interface&#xff09;互相沟通。一个接口内声明了提供相关服务的方法&#xff08;C语言函数&#xff09;。例如数据读取接口&#xff08;Read&#…

用asp.net实现的把本文推荐给好友功能

作者&#xff1a; 飞鹰 www.ASPCool.com 时间:2001-11-25 17:39:07 ///<summary> ///<author>飞鹰ASPCool.com</author> ///<description>本文用asp.net实现把此文推荐给好友的功能。</desciption> ///<copyright>ASP酷技术资讯…

Access sql语句创建表及字段类型

创建一张空表&#xff1a; Sql"Create TABLE [表名]" 创建一张有字段的表&#xff1a; Sql"Create TABLE [表名]([字段名1] MEMO NOT NULL, [字段名2] MEMO, [字段名3] COUNTER NOT NULL, [字段名4] DATETIME, [字段名5] TEXT(200), [字段名6] TEXT(200)) 字段类…

“刚毕业1年,做Python能挣多少?”网友:吹的不多..

01现状揭秘&#xff1a;Python的火持续燃烧程序员&#xff1a;心态崩了&#xff01;2020年转眼已经大半&#xff0c;在近几个月的榜单中&#xff0c;Python已经连续走上卫冕的道路&#xff0c;并且与Java的差距拉得更远了一些。以往与Java常呈现你追我赶之势&#xff0c;而这一…