pdf文件保存为当前页面源

时间:2015-07-17 13:07:39

标签: php html .htaccess pdf download

我试图在我的网站上下载pdf文件,但所有我得到的是当前页面源(html)。 正确给出了文件名,但文件本身没有下载。

我尝试过在stackoverflow上找到的各种修复,但它没有帮助。

我已经在htaccess中尝试了AddType application / octet-stream .pdf,还有ForceType。 在这里尝试了php修复: How to make PDF file downloadable in HTML link? 用这个来完成php:

header("Content-disposition: attachment; filename=filename.pdf");
header("Content-type: application/pdf");
readfile("filename.pdf");

然后链接到php文件,仍然是相同的。

我做错了什么,你需要哪些信息才能更好地理解这一点?

3 个答案:

答案 0 :(得分:0)

你可能会犯一些错误来检查(和调试)试试这个

  <?php
     $file = ABSOLUTE_PATH_WHERE_PDF_IS_STORED.'/my.pdf'; //replace *ABSOLUTE_PATH_WHERE_PDF_IS_STORED* with your path

     if (file_exists($file)) {
         header('Content-Description: File Transfer');
         header('Content-Type: application/octet-stream');
         header('Content-Disposition: attachment; filename='.basename($file));
         header('Expires: 0');
         header('Cache-Control: must-revalidate');
         header('Pragma: public');
         header('Content-Length: ' . filesize($file));
         readfile($file);
         exit;
  } else {
      die("FILE [".$file."]" don't exists!");
  }
 ?>

答案 1 :(得分:0)

所以我发现问题,当然很明显,我错误地链接到文件,因为我使用cms它发送了首页源(默认行为)。 特别是html5下载属性无论如何都不起作用。

感谢Donald123和PKa回答。

答案 2 :(得分:-1)

您可以使用带有属性下载的标记

<a href="path/to/file/*.pdf" download>Download this pdf</a>

这是一种快速的方法。