Cra*_*nor 9 html php download http-headers
我试图让一个网站有一个强制下载pdf的按钮.
下面是按钮的html:
<a href=scripts/download.php>
<input type="image" src="images/download.gif" alt="Submit button"/>
</a>
Run Code Online (Sandbox Code Playgroud)
到目前为止php脚本:
<?php
header('Content-Type: application/pdf');
header('Content-disposition: attachment;filename=documents/ECM_IT_ResumeDownload.pdf');
readfile('documents/ECM_IT_ResumeDownload.pdf');
?>
Run Code Online (Sandbox Code Playgroud)
这似乎下载文件很好,但当我打开它时,我收到此错误:
"Adobe Reader无法打开'documents_ECM_IT_ResumeDownload.pdf',因为它不是受支持的文件类型,或者因为文件已损坏(例如,它是作为电子邮件附件发送的,并且未正确解码)."
任何帮助将不胜感激.
编辑 在文本编辑器中打开pdf并收到以下消息:
"
警告:readfile(documents/ECM_IT_ResumeDownload.pdf)[function.readfile]:无法打开流:第4行的html/scripts/download.php中没有这样的文件或目录
"
该文件肯定在那里.在html/documents/ECM_IT_ResumeDownload.pdf中
小智 24
$file_url = www.example.com/pdffolder/$pdfname;
header('Content-Type: application/pdf');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=".$pdfname);
readfile($file_url);
Run Code Online (Sandbox Code Playgroud)
尝试删除文件的路径,然后仅在内容中保留文件名:
header('Content-Type: application/pdf');
header('Content-disposition: attachment; filename=ECM_IT_ResumeDownload.pdf');
Run Code Online (Sandbox Code Playgroud)
您是否尝试过去掉最后的 PHP 结束标记(?>)?它将将该页面视为纯 PHP 页面,删除任何可能意外附加到输出末尾的新行。当我动态创建 Excel 文件以供下载并且下载的文件已损坏时,这对我很有帮助。查看此页面了解更多信息:
http://www.php.net/manual/en/language.basic-syntax.phptags.php
从您编辑的问题来看,PHP 似乎无法找到该文件。尝试使用文件的绝对路径,如下所示:“c:\blah\de\blah\bloo.pdf”或“c:/blah/de/blah/bloo.pdf”。如果这些路径之一可以正常工作并正确下载,则说明您的相对路径在某种程度上不正确。