当前位置:首页 »“秋了秋”个人博客 » 网络技术 » Php实现文件上传下载功能

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
目录: 网络技术标签: php上传下载 12282次阅读

请求播放音乐,请点击播放

登 录
点击获取验证码
还没账号?点击这里