TP5 强制下载PDF

Posted on 2017-12-15 10:16  pai片儿的  阅读(1263)  评论(0编辑  收藏  举报

为什么叫强制下载  因为你点击你的PDF文件路劲的话   浏览器是默认字网页上打开,而不是下载

我们需要做的就是 修改header头信息  使其变为下载状态

//下载PDF
    public function forceDownload() {
        $param = input('param.');
        if(!empty($param['enclosure'])){
            $filename =  ROOT_PATH.'public'.DS.'uploads'.DS.$param['enclosure'].'.pdf';//此处是PDF文件路径,ROOT_PATH是配置服务器时设置的常量,每个服务器的应该都不一样,视情况而定
        }else{
            $this->error('没有PDF文件');
        }
        // dump($filename);exit;
        if (false == file_exists($filename)) {
            $this->error('找不到文件');
        }

        // http headers
        header('Content-Type: application-x/force-download');
        header('Content-Disposition: attachment; filename="' . basename($filename) .'"');
        header('Content-length: ' . filesize($filename));

        // for IE6
        if (false === strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6')) {
            header('Cache-Control: no-cache, must-revalidate');
        }
        header('Pragma: no-cache');

        // read file content and output
        return readfile($filename);;
    }