1

我使用 Zend_Pdf 创建一个新的 pdf,然后强制浏览器下载文件。该网站只能通过 https 访问。这是我的文件输出:

$output = $pdf->render();
$response = new Zend_Controller_Response_Http();
$response->setHeader('Content-Disposition', 'attachment; filename="xyz.pdf"');
$response->setHeader('Content-type', 'application/pdf');
$response->setHeader('Content-length', strlen($output));
$response->setHeader('Cache-Control', 'private');
$response->setHeader('Expires', '0');
$response->setHeader('Pragma', 'private');
$response->setBody($output);
$response->sendResponse();

为此,我已经阅读了许多关于正确标题的文章,但 Internet Explorer 8 中的某些内容无法正常工作。每次您尝试生成和下载 pdf 时,都会显示下载对话框,但它说没有可下载的内容。文件名错误(而不是 xyz.pdf,它显示了生成表单所在站点的名称)

经过测试和工作:Firefox、Chrome、IE9、Opera、Safari

我还尝试了 Cache-Controle 标头或 Pragma 标头的不同可能性,就像许多文章谈论的那样。

4

1 回答 1

0

好的,第三个参数是覆盖选项。

$response->setHeader('Cache-Control', 'private', true);
$response->setHeader('Expires', '0', true);
$response->setHeader('Pragma', 'private', true);
于 2012-09-27T10:42:22.680 回答