关于HTTP类中的download方法的疑问?

浏览:51 发布日期:2017/11/14 分类:求助交流
在TP中的HTTP类的download最后一句为exit,也就是说在我调用这个方法的程序中,后面不能再写代码了,因为执行download方法后就中止程序运行了。为什么要这样设计啊。因为我有可能在下载文件后再做一些其它操作啊。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" );
        if($content == '' ) {
            readfile($filename);
        }else {
            echo($content);
        }
        exit();
    }
最佳答案
评论( 相关
后面还有条评论,点击查看>>