当只需要pdf时,包含.php文件的PHP文件下载
<?php
$file = $_GET['name'];
$path = './curr/'.$file.'.pdf'; // the file made available for download via this PHP file
$mm_type="application/pdf"; // modify accordingly to the file type of $path, but in most cases no need to do so
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: " . $mm_type);
header("Content-Length: " .(string)(filesize($path)));
header('Content-Disposition: attachment; filename="'.basename($path).'"');
header("Content-Transfer-Encoding: binary\n");
readfile($path); // outputs the content of the file
?>
这是file.php中的一段代码。我指的是使用文件:当只需要pdf时,包含.php文件的PHP文件下载
<a href="file.php?name=First File">File 1</a>
这样做的目的是,在链接的点击,./curr/First File.pdf
应该下载。我确实得到了一个下载,但在检查时,它是嵌入在文件中的pdf的网页。任何人都可以协助
如果你想刚才的PDF加载,上面的代码将被执行的所有代码。
删除所有周围的菜单,页眉或页脚。确保在调用此链接时,除了来自readfile()
的PDF之外,没有HTML或任何其他输出。
谢谢你的帮助。 – Glenn 2013-03-08 14:16:20
尝试改变内容类型:
header("Content-Type: application/force-download");
我也一样。 PHP的.php文件没有了。其中这个PHP是是%PDF-1.6% âãÏÓ 557 0 OBJ > endobj 567 0 obj等等 – Glenn 2013-03-08 14:02:44
我讨厌这么多。作为用户,当我点击PDF链接时,我希望它在我的浏览器中打开。当网站迫使我下载可以在浏览器中查看的东西时,我绝对鄙视。我可以下载它,如果我想 - 完全脱离主题,我知道。 – 2013-03-08 14:03:31
我很欣赏这一点。但该网页也有一个部分可以在网站上查看PDF(嵌入为对象,我承认)。这是特别的下载部分。 – Glenn 2013-03-08 14:07:32
上面的代码包含'file.php'文件中的所有内容? – Sirko 2013-03-08 14:00:29
否。围绕下载有一个菜单系统等。以及登录验证。我应该失去所有,但PHP代码? – Glenn 2013-03-08 14:03:40
@Splatter如果你在页面上有其他的HTML,那将会在downlaod中得到输出。你的'file.php'根本不应该有_ANY_标记。 – 2013-03-08 14:04:08