封装文件的上传和下载操作

Original 2019-06-04 20:49:09 210
abstract:文件的上传//通过判断上传文件,将文件移动至目标文件夹,并为此文件进行唯一命名,无论上传成功和失败均返回相应的信息 function dn_ul_file($uploadinfo,$upload_maxsize=10000,$upload_tpye=['txt','png','jpg'],$up_load='./uplo

文件的上传

//通过判断上传文件,将文件移动至目标文件夹,并为此文件进行唯一命名,无论上传成功和失败均返回相应的信息 function dn_ul_file($uploadinfo,$upload_maxsize=10000,$upload_tpye=['txt','png','jpg'],$up_load='./upload'){ //上传 判断上传文件的大小,类型是否 if ($uploadinfo['error']==0){ $uploadinfo_type=strtolower(pathinfo($uploadinfo['name'],PATHINFO_EXTENSION)); if (!in_array($uploadinfo_type,$upload_tpye)){ return'上传类型为非法文件类型'; } if ($uploadinfo['size']>$upload_maxsize){ return'上传文件超过文件最大上传量'; } //判断是通过http中的post方法进行上传 if (!is_uploaded_file($uploadinfo['tmp_name'])){ return'非法上传操作'; } //判断上传文件夹是否存在,如果不存在则创建 if (!is_dir($up_load)){ mkdir($up_load,0777,true); } //将上传文件命名为唯一的命名,uniqid()生产唯一的id,microtime()返回当前unix时间蹉中的微秒数 $uniname=md5(uniqid(microtime(true),true)).".".$uploadinfo['name']; //拼接文件及文件名 $dest=$up_load."/".$uniname; //将文件移动至目标文件夹 if (move_uploaded_file($uploadinfo['tmp_name'],$dest)){ return'文件上传成功'; }else {return'文件上传失败';} } else { switch( $uploadinfo['error']){ case 1:$res='上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。'; break; case 2:$res='上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值'; break; case 3:$res='文件只有部分被上传'; break; case 4:$res='没有文件被上传'; break; case 6: case 7:$res='系统错误'; break; } } return $res; }

前端页面

    上传 
  

调用

include 'demo5.php';//引入上传的方法库 $fileinfo=$_FILES['MyFile'];//将上数组赋值给$fileinfo echo dn_ul_file($fileinfo);//调用上传方法

文件的下载

function down_file($filename){ //告诉浏览器返回文件的大小 header('Accept-Length'.filesize($filename)); //告诉浏览器文件作为附件处理,并告诉浏览器下载完毕的文件名 header('Content-Disposition:attachment;filename='.basename($filename)); //输出文件 readfile($filename); } down_file('www1.zip');


Correcting teacher:查无此人Correction time:2019-06-05 09:44:33
Teacher's summary:完成的不错。封装方法,多看看别人写好的,把好的拿过来。继续加油

Release Notes

Popular Entries