您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP文件上传及下载源码

2024/5/3 11:46:01发布36次查看
一、文件上传
前台页面:
doctype html>html>head> meta charset=utf-8> title>文件上传title>head>body>div> form method=post action=upload.php enctype=multipart/form-data > 用户名input type=text name=username>input> br> 文件简单介绍br>textarea name=fileintro rows=8 cols=50>textarea> br>选择要上传的文件br>input type=file name=myfile>input>br> input type=submit value=上传文件>input> form>div>body>html>
后台处理:
php//接收提交页面传送的相关信息$name = $_post['username'];$intro = $_post['fileintro'];//$_files中存放着文件的相关信息// echo ;// print_r($_files);// echo
;//可以在这里对文件大小进行限制/*$filesize = $_files['myfile']['size'];if($filesize>2*1024*1024){ echo 文件过大,不能上传; exit();}*/ //可以对文件类型进行限制 /*$filetype = $_files['myfile']['type']; if($filetype!='image/jpg'&&$filetype!='application/pdf'){ echo 文件类型只能是jpg和pdf; exit(); }*/ if (is_uploaded_file($_files['myfile']['tmp_name'])) { //把文件转存到你希望存放的目录 $uploaded = $_files['myfile']['tmp_name']; //每个用户动态创建一个文件夹 $userpath = $_server['document_root']./up/.$name; //判断该用户是否已经有文件夹 if(!file_exists($userpath)){ mkdir($userpath); } //防止同一用户上传同名文件,可在文件中添加时间戳。 //$moveto = $userpath./.time().$_files['myfile']['name']; //或者对文件名进行修改,但是需要使用字符串处理截得文件后缀名 $truename = $_files['myfile']['name']; $moveto = $userpath./.time().substr($truename,strrpos($truename,.)); if(move_uploaded_file($uploaded,iconv(utf-8, gb2312, $moveto))){ echo 上传文件.$_files['myfile']['name'].成功; }else{ echo 上传文件.$_files['myfile']['name'].失败; }}else{ echo 上传文件.$files['myfile']['name'].失败;}?>
二、文件下载:
单文件下载:
php function down_file($file_name,$file_path){ //$file_name = iconv(uft-8,gb2312,$file_name); //如果文件名是中文,需要对中文名称转码gb2312 //要下载的文件读取到服务器的内存中 //服务器返回文件数据给浏览器 //浏览器将文件写入用户指定的位置 //1.判断文件是否存在 if(!file_exists($file_name)){ echo 111; return ; } $fp = fopen($file_name,r); $file_size = filesize($file_name); //获取文件大小 //可通过file_size限制浏览器下载文件大小。 //返回的文件 header(content-type:application/octet-stream); //按字节大小返回 header(accept-ranges:bytes); //返回文件大小 header(accept-length:$file_size); //客户端弹出对话框,对应的文件名 header(content-disposition:attachment;filename=.$file_name); $buffer = 1024; //定义缓冲区 //为了下载的安全,最好使用文件字节读取计数器 $file_count = 0; //feof用于判断文件是否读取到文档尾 while(!feof($fp) && ($file_size-$file_count>0)){ $file_data = fread($fp,$buffer); //统计读了多少个字节 $file_count+$buffer; echo $file_data; //把部分数据会送给浏览器 } fclose($fp); //关闭文件 }?>
多个文件下载:
downlist.php:
down
down
down
down

downprocess.php:
php $filename = $_request['filename']; function down_file($file_name){ if(!file_exists($file_name)){ echo 111; return ; } $fp = fopen($file_name,r); $file_size = filesize($file_name); header(content-type:application/octet-stream); //按字节大小返回 header(accept-ranges:bytes); //返回文件大小 header(accept-length:$file_size); //客户端弹出对话框,对应的文件名 header(content-disposition:attachment;filename=.$file_name); $buffer = 1024; //定义缓冲区 $file_count = 0; //feof用于判断文件是否读取到文档尾 while(!feof($fp) && ($file_size-$file_count>0)){ $file_data = fread($fp,$buffer); //统计读了多少个字节 $file_count+$buffer; echo $file_data; //把部分数据会送给浏览器 } fclose($fp); } down_file($filename);?>
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product