Php实现文件上传下载功能
作者:秋了秋 发表时间:2015年04月11日
php实现上传下载代码,主要有三部分,第一部分为表单代码,即是上传模块,代码如下,请把代码另存为upload.php
<!DOCTYPE html > <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>上传我的文件--秋叶网络博客</title></head><body> <form enctype="multipart/form-data" action="doupload.php" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="6000000" /> <!--设置允许提交表单的最大字节数--> 文件上传: <input name="file" type="file" /> <input type="submit" value="上传"/> </form> </body></html>
第二部分为处理程序模块,用于对表单的处理,即是上传的主要功能函数,请把代码另存为doupload.php
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>文件上传成功--秋叶网络博客</title></head> <body><? //处理程序 function extend($file_name) //定义获取文件的扩展名函数 {$extend =explode("." , $file_name); $va=count($extend)-1; return strtolower($extend[$va]);} $dirname="";//是否启用上一层路径,格式为:$dirname="../";或$dirname="../../";等等与$dir组合使用,注意不要溢出根路径 $dir='upload';//设定上传目录,与上面的$dirname组合 $file=$_FILES['file'];//从文件域表单获取文件 $filename=$file['name'] ;//获取文件全名 $c_filesize=$file['size'] ;//获取本地的文件大小 $extendname=extend($filename);//获取文件扩展名 if($c_filesize>200000000000)die("文件太大");//限制上传文件大小, 单位字节 //if($extendname!="jpg")die("只允许上传JPG格式的图片");//限制上传文件格式,去掉语句开头的两斜杠生效 if(!file_exists($dir));//检查目录文件夹是否存在,不存在则建立新文件夹 { $v=preg_split ('[/.-]', $dir); for ( $i=0 ; $i <count($v) ; $i++) {$dirname=$dirname.$v[$i]; if(!file_exists($dirname))mkdir($dirname); $dirname=$dirname."/";} } ?> <? $dest=$dirname./*date("YmdHis", time()).rand(1000,9999).".".$extendname*/$filename; //设置文件名,注释的为日期加上从1000到9999的随机数和扩展名 if(file_exists($dest))die("该文件已经存在"); if(move_uploaded_file($file['tmp_name'],$dest)) //调用文件上传函数 {$s_filesize=filesize($dest);//获取服务器端的文件大小 echo "文件上传成功,<a href=".$dest.">查看文件地址</a>"; echo "<br>本地文件名:".$filename; echo "<br>远端文件名:".$filename; echo "<br>大 小:".ceil($s_filesize/1024)." KB"; echo "<br>扩展名:".$extendname; } else {echo "还未进行文件上传";} ?> </body></html>
第三部分为下载模块,主要用于对目录中的文件执行陈列和下载,请把代码另存为download.php
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>下载文件--秋叶网络博客</title> </head><body> <br><br> <br>网友上传的全部文件(请用右键另存为下载): <br> <?php //列出文件名 $dir = "upload/"; // 文件夹的名称 if (is_dir($dir)){ if ($dh = opendir($dir)){ while (($file = readdir($dh)) !== false){ echo "文件名:<a href='$dir$file'> $file</a> <br>"; }closedir($dh);}}?> </body></html>
把这三个文件放在同一目录下,访问http://你的目录/upload.php就可以上传文件了,访问http://你的目录/download.php就可以下载文件了。
功能还需要完善,css美化自行解决。
2
文章作者: “秋了秋”个人博客,本站鼓励原创。
转载请注明本文地址:http://netblog.cn/blog/321.html