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层点击下载文件按钮,传入控制层即可;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 6,872评论 3 64
  • PHP是一个简单易学,功能强大的语言,尤其在Web开发,开发效率高,方便快捷。研究一下php.ini了解PHP相关...
    雷雪松的简书阅读 3,023评论 3 64
  • 一、需求来源 最近在做一个就业信息发布网站,发布每天的南北校宣讲会信息。此时前端模型已经搭建好,用的是HTML+C...
    treker阅读 6,579评论 4 30
  • 这两天把项目部署到线上,还不太懂Linux的操作,所以在Windows下折腾了一番环境。琐碎的配置太多,在这里记录...
    Veekend阅读 1,808评论 0 8
  • 这是篇三观尽毁的,很污的,没有堕胎就不是青春的小说。我想写很久了。慎入。应该不会坑,缓更。 ———————————...
    Sue阅读 282评论 0 0