thinkphp使用http::download下载word或者ppt文件乱码问题的解决方法

来源:互联网 发布:mysql 多主 性能 编辑:程序博客网 时间:2024/06/04 21:38

如果使用了如题目的方法进行下载文件

修改Http.class.php文件的

static public function download ($filename, $showname='',$content='',$expire=180) {        if(is_file($filename)) {            $length = filesize($filename);        }elseif(is_file(UPLOAD_PATH.$filename)) {            $filename = UPLOAD_PATH.$filename;            $length = filesize($filename);        }elseif($content != '') {            $length = strlen($content);        }else {            E($filename.L('下载文件不存在!'));        }        if(empty($showname)) {            $showname = $filename;        }        $showname = basename($showname);if(!empty($filename)) {$finfo = new \finfo(FILEINFO_MIME);$type = $finfo->file($filename);}else{$type="application/octet-stream";}        //发送Http Header信息 开始下载        header("Pragma: public");        header("Cache-control: max-age=".$expire);        //header('Cache-Control: no-store, no-cache, must-revalidate');        header("Expires: " . gmdate("D, d M Y H:i:s",time()+$expire) . "GMT");        header("Last-Modified: " . gmdate("D, d M Y H:i:s",time()) . "GMT");        header("Content-Disposition: attachment; filename=".$showname);        header("Content-Length: ".$length);        header("Content-type: ".$type);        header('Content-Encoding: none');        header("Content-Transfer-Encoding: binary" );        ob_clean();/*************************重点**********/        flush();/****************************重点*************/        if($content == '' ) {            readfile($filename);        }else {        echo($content);        }        exit();    }

只需要添加上面代码中重点的两句话即可

阅读全文
0 0
原创粉丝点击