我已经使用PHP标头实现了下载脚本来下载PDF文件。我的脚本工作正常,并在我的localhost中下载相应的PDF文件,但该脚本在我的服务器中不起作用。
我的代码是:
header("Content-Disposition: attachment; filename='dfile.pdf'");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-type: application/pdf;");
readfile("http://www.education.gov.yk.ca/pdf/pdf-test.pdf");
在我的服务器文件浏览器中显示正常并将文件下载为dfile.pdf
,但如果我尝试打开下载的文件,则会收到the file has been damaged
的错误消息。我的任何服务器设置导致此问题或其他?
任何解决此问题的建议都非常明显。
注意:我认为这可能是我的服务器PHP设置的问题,任何人都可以告诉我“readfile”函数是否需要在我的服务器中启用任何PHP设置?
提前致谢, 希瓦...
答案 0 :(得分:3)
我认为PHP会在PDF文件正文之前输出一些警告。检查一下。
答案 1 :(得分:0)
此问题是由于我的服务器PHP设置,我的服务器中未启用“allow_url_fopen”设置。我正在使用CURL处理这种情况,无论如何,感谢您的支持。
答案 2 :(得分:0)
尝试使用此代码:
$file = 'monkey.pdf';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}