Thinkphp框架下封装文件下载函数

第一步:开启php_fileinfo.dll

方法:打开php.ini,将874行的;extension=php_fileinfo.dll前面的分号注释去掉即可;

 

第二步:控制层封装文件下载函数

function download_file($file){
    if(is_file($file)){
        $length = filesize($file); //文件大小
        $type = mime_content_type($file); //文件类型
        $showname =  ltrim(strrchr($file,'/'),'/'); //文件名
        header("Content-Description: File Transfer");
        header('Content-type: ' . $type);
        header('Content-Length:' . $length);
         if (preg_match('/MSIE/', $_SERVER['HTTP_USER_AGENT'])) { //for IE
             header('Content-Disposition: attachment; filename="' . rawurlencode($showname) . '"');
         } else {
             header('Content-Disposition: attachment; filename="' . $showname . '"');
         }
         readfile($file);
         exit;
     } else {
         exit('文件已被删除!');
     }
 }

其中$file为文件的绝对路径,在view层点击下载文件按钮,传入控制层即可;

posted @ 2017-07-27 16:38  申文哲  阅读(1123)  评论(5编辑  收藏  举报