【发布时间】:2010-08-24 10:20:36
【问题描述】:
我正在创建 pdf 文档以供下载,例如有人点击了 PDF 链接,然后生成了一个 pdf,浏览器会打开带有该 pdf 文件路径的新窗口。问题是浏览器在创建后大约 40-50 秒内为该文件提供 404 NOT found 错误,但在那之后,当我刷新浏览器时,该文件存在以供查看或下载。
一个 pdf 链接是 http://images.myvouchercodes.co.uk/mvclocal/pdf/ca3b5098-9b35-7d8e.pdf,您可以在其中查看文件,但相同的 url 在创建后立即给出 404 未找到。我正在使用以下代码编写文件
try{
$fh = fopen($filename, "w");
$contents = $this->render(); // return pdf contents in string
if(fwrite($fh, $contents))
{
$fh = fopen($filename, "r");
while(strlen(file_get_contents($filename)) != strlen($contents))
{ }
echo $filename;
}
else
{
throw new Exception ("Unable to create pdf");
}
fclose($fh);
}
catch(Exception $e)
{
echo $e->getMessage();
}
该调用是 ajax,它会在 pdf 完成时回显文件名,然后将此文件名附加到 url,然后我使用 window.open() 打开带有 pdf 链接的新窗口,这给了我 404 not found 错误。有谁知道为什么会出现这个错误?
【问题讨论】:
-
当有
Zend_Pdf::save($this->save($filename)) 时为什么要fopen和fwrite? -
你能描述一下这个过程吗?单击pdf按钮导致服务器...等等。这将有助于更好地了解您的问题
-
我单击 pdf 按钮,向服务器发送 ajax 请求,该服务器将生成 pdf 并将其存储在文件夹中。 Ajax 请求将输出 pdf 文档的路径。使用此路径,我们将打开新窗口以显示生成的 pdf。
标签: php zend-framework fwrite zend-pdf