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

Original 2019-06-04 20:49:09 215
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;
 }

前端页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="MyFile"><!--上传选择框-->
 <input type="submit" name="上传"><!--上传按钮-->
</form>
</body>
</html>

调用

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