PHP初学者必备:文件上传与下载实例教程
PHP文件上传下载实例是新手学习PHP的重要环节。首先,我们需要创建一个HTML表单,用于选择要上传的文件。然后,在PHP脚本中,我们需要使用全局变量$_FILES来获取上传的文件信息。接下来,我们需要检查文件是否已经存在,如果不存在,则将其保存到指定的目录。最后,我们可以创建一个链接,让用户下载已上传的文件。此外,我们还需要注意安全性问题,例如检查文件类型和大小等。通过这个实例,新手可以更好地理解PHP如何处理文件上传和下载操作。
都知道PHP无非就是增删改查,学会了增删改查就入门了PHP,菜鸡源码分享一篇PHP新手必学文件上传下载实例,快来学习吧。
主页index.php
<html><head><title>图片操作</title><style>#contains{width:500px;margin:0auto;text-align:center;color:#0F0;}th{background:#ccc;}td{width:150px;height:50px;text-align:center;}</style></head><body><divid="contains"><h2>图片上传和下载</h2><!----------------文件上传表单-------------><formaction="doupload.php"method="post"enctype="multipart/form-data"><inputtype="hidden"value="10000000"/><!---避免上传后发现文件过大---><inputtype="file"name="pic"/><inputtype="submit"value="上传"/></form><!---------------------------------------><tablewidth="500"border="0"><tr><th>序号</th><th>图片</th><th>添加时间</th><th>操作</th></tr><?php//1.打开目录$dir=opendir("./imgs");//2.遍历目录$i=0;$color="#ff0";while($f=readdir($dir)){//$f代表这每个文件的名字if($f=='.'||$f=="..")continue;//处理特殊隐藏的文件$i++;if($i%2==0)$color="#ccc";else$color="#ffa";echo"<trbgcolor=$color>";echo"<td>{$i}</td>";echo"<td><imgsrc='./imgs/{$f}'width='150'height='50'/></td>";echo"<td>".date("Y-m-d",filectime('./imgs/'.$f))."</td>";echo"<td><ahref='./imgs/{$f}'>查看</a><ahref='download.php?name={$f}'>下载</a></td>";echo"</tr>";//echo$f."";}?></table></div></body></html>
上传处理doupload.php
<?php/*echo"<pre>";var_dump($_FILES);echo"</pre>";*///1.获取上传文件信息$upfile=$_FILES["pic"];$path="./imgs/";//2、过滤错误信息if($upfile["error"]>0){die("上传文件错误");}//3、本次上传文件的大小过滤if($upfile["size"]>10000000){die("上传文件超出限制");}//4、处理文件类型$typelist=array("jpeg","jpg","png","gif");$arr=explode(".",basename($upfile['name']));//以'.'分割字符串为数组$bz=array_pop($arr);//获取文件的后缀名if(!in_array($bz,$typelist)){//如果给定的值value存在于数组array中则返回truedie("上传文件类型非法!".$upfile["type"]);}//5、设置相同文件的名字不同$newfile=date("YmdHis").rand(100,999).".".$bz;//if(is_uploaded_file($upfile["tmp_name"])){//判断文件是否是通过post上传//执行文件上传if(move_uploaded_file($upfile["tmp_name"],$path.$newfile)){//将上传的文件保存在新位置echo"上传成功!";echo"<ahref='index.php'>浏览</a>";}else{die("上传失败");}}?>
下载处理download.php
<?php//1.获取于要下载的文件名$file="./imgs/".$_GET["name"];//echo$file;//2.重设响应类型$info=getimagesize($file);//获取文件大小//var_dump($info);header("Content-Type:".$info["mime"]);//3.执行下载文件名header("Content-Disposition:attachment;filename=".$_GET["name"]);//4.指定文件大小header("Content-Length:".filesize($file));//5.响应内容readfile($file);?>