【发布时间】:2012-05-21 13:19:59
【问题描述】:
我试图让一个网站有一个强制下载 pdf 的按钮。
这是按钮的html:
<a href=scripts/download.php>
<input type="image" src="images/download.gif" alt="Submit button"/>
</a>
到目前为止的 php 脚本:
<?php
header('Content-Type: application/pdf');
header('Content-disposition: attachment;filename=documents/ECM_IT_ResumeDownload.pdf');
readfile('documents/ECM_IT_ResumeDownload.pdf');
?>
这似乎可以正常下载文件,但是当我打开它时出现此错误:
“Adobe Reader 无法打开 'documents_ECM_IT_ResumeDownload.pdf',因为它不是受支持的文件类型或文件已损坏(例如,它作为电子邮件附件发送且未正确解码)。”
任何帮助将不胜感激。
编辑 在文本编辑器中打开 pdf 并收到以下消息:
"
警告:readfile(documents/ECM_IT_ResumeDownload.pdf) [function.readfile]:无法打开流:html/scripts/download 中没有这样的文件或目录。 php 上线 4
"
文件肯定在那里。在 html/documents/ECM_IT_ResumeDownload.pdf 中
【问题讨论】:
-
将输入标签包装在链接标签中很奇怪
-
很可能是某些原因导致输出包含一些无效的 pdf 内容。也许服务器正在抛出错误。尝试在文本编辑器中打开结果文件
-
啊,我没有注意到,我已经为另一个链接做了那个,但没有注意到我仍然有那个
-
您是否尝试过比较源文件和下载文件?
-
确保
?>之后没有尾随空格,这将成为下载的一部分。事实上,完全消除?>这样就不会出现问题了。
标签: php html download http-headers