当前位置:秋叶网络博客 网络技术 ◊ Php实现文件上传下载功能

Php实现文件上传下载功能

作者:秋叶 发表时间:2015年4月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美化自行解决。

转载请保留链接:Php实现文件上传下载功能 | 出处:秋叶个人博客| 本文链接地址:http://www.mizuiren.com/321.html
目录: 网络技术 | 标签: | 9155次阅读