繁体   English   中英

Mpdf 不从内联 chrome 浏览器下载 pdf(但显示 pdf)

[英]Mpdf not downloading pdf from inline chrome browser (but displaying pdf)

我使用 mpdf 在我的浏览器中显示 pdf,它工作正常。

pdf 文件显示在浏览器中,但是当用户单击下载按钮时,会下载 php 代码但不会显示 pdf 文件。

下面是我的代码

$mpdf=new mPDF( ); 
$mpdf->SetDisplayMode('fullpage');
$mpdf->list_indent_first_level = 0;    
$mpdf->WriteHTML($html,2);
$mpdf->showImageErrors = true;
$filename='Test';

$mpdf->Output($filename.'.pdf', 'I');

对于 mpdf,我不能使用如下所示的 D 或 F,因为用户必须首先在他的浏览器中查看 pdf,然后他必须根据自己的兴趣下载。

$mpdf->Output($filename.'.pdf', 'D');

关于如何从内联浏览器下载 pdf 而不是代码的任何建议/想法。

ob_clean();
$mpdf->Output($filename.'.pdf', 'I');

现在应该下载了。

将文件内联发送到浏览器。 如果可用,将使用该插件。 当在生成 PDF 的链接上选择“另存为”选项时,将使用 $filename 给出的名称

这花了我很多时间,所以如果有人需要,我会在这里发布我的答案。

// filename
$mpdf->Output($filename.'.pdf');

// You need to write this
$file = $filename.'.pdf';
$response = new \Zend\Http\Response\Stream();
$response->setStream(fopen($file, 'r'));
$response->setStatusCode(200);
$response->setStreamName(basename($file));
$headers = new \Zend\Http\Headers();
$headers = addHeaders(array(
    'Content-Disposition' => 'attachment; filename"'.basename($file).'"',
    'Content-Type' => 'application/pdf',
    'Content-Length' => filesize($file),
    'Expires' => '@0',
    'Cache-Control' => 'must-revalidate',
    'Pragma' => 'public'
));

$response->setHeaders($headers);
return $response;

玩得开心编码::)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM