我希望mpdf在用户的AJAX请求下生成pdf文件。一切运行正常,但响应不会以pdf打开。
在NETWORK下的RESPONSE中,我看到如下内容:
%PDF-1.4
%âãÏÓ
3 0 obj
<</Type /Page
/Parent 1 0 R
/MediaBox [0 0 595.280 841.890]
/TrimBox [0.000 0.000 595.280 841.890]
/Resources 2 0 R
/Group << /Type /Group /S /Transparency /CS /DeviceRGB >>
/Contents 4 0 R>>
endobj
4 0 obj
<</Filter /FlateDecode /Length 382>>
stream
xTËNÃ0ôÙ_1G8à®8¯HP©·Ò [¨j+µêï³ô!q°ãÝ]ÛØpBj9
ç3eÛ l`¼VÚùß_#=
ðäZQg?¬d/Ú¤ÒãÁSX`©Â`"IÙÌá$<2R¬dËÑx¦±:6Qâ ß?ØÙ¼9ãÌÑscåbxØ{dB
8Æ&*1\TfuŸZØråDʾG±f
.°%À9K½(²l%÷*vâKÅBÌ/Éì«úÝÜ" yàöV¹<LCnmj|êQâ3³Æ¡½¿¹Åk^N¾Ît¥[WfI9e'%]a0Ú¡X ÇÉ]m¨3o³ÐõºtÐfÐíÎMahjðØn6¦YO´D~¯¬¿¶\B Ì)m¿üu.¿@u^ÿç~3ªÃ³ßL
~L¬
请指导我如何让mpdf
将生成的文件附加到浏览器,以便用户可以下载?
这是我的代码:
<?php
header('Content-Type: application/pdf');
require('../../../../core/inc/connect.php');
require('../func.php');
require('mpdf.php');
//generate sign up codes as pdf file
if (isset($_POST['codes'])) {
$content = array();
foreach ($_POST['codes'] as $key => $value) {
$content[] = mpdfContent($value,'Unused');
}
$mpdf = new mPDF();
$mpdf->WriteHTML("<div>".(implode($content))."<div style='clear:both;'></div></div>");
$mpdf->Output();
}
?>
答案 0 :(得分:0)
尝试在脚本中添加以下标题:
header("Content-Disposition: attachment")
这会下载文件。
答案 1 :(得分:0)
通常您不需要自己设置任何标题。如果目的地是I(内联)或D(强制下载),则由MPDF处理。检查MPDF文档或源以查看发送的标头。 MPDF manual标题也应显示在网络控制台中。
您打算通过AJAX调用下载代码是什么意思?通常,您要么通过AJAX请求一些JSON oder HTML来更新当前页面的视图状态。如果AJAX是由链接触发的,请尝试直接链接到您的PHP文件而不使用AJAX,因为我不确定在执行AJAX调用时是否解释了下载头