使用PHP防止自动下载PDF文件

时间:2016-07-20 07:43:08

标签: php html pdf iframe

我必须在我的网站上显示PDF文件,所以我使用<iframe>进行了编码,但问题是当我打开我的网站时,PDF文件开始下载而不是查看。 这是我的代码

<?php
 $pdf = 'http://'. $_SERVER['SERVER_NAME']."/truwood/".$_REQUEST['pdf'];
 echo "<iframe src=\"$pdf\" width=\"100%\" style=\"height:600px\"></iframe>";
?>

注意:我已将IDM(Internet Download Manager)安装到我的笔记本电脑上,我认为这只是IDM的问题。

请建议阻止从PHP中的任何第三方软件自动下载的内容。

提前致谢!

3 个答案:

答案 0 :(得分:1)

您可以选择以下一种方式:

header("Content-type: application/pdf");
header("Content-Disposition: inline; filename=filename.pdf");
@readfile('path\to\filename.pdf');

或:(注意转义的双引号)。在为其指定名称时也需要使用相同的内容。

<?php

echo "<iframe src=\"file.pdf\" width=\"100%\" style=\"height:100%\"></iframe>";

?>

注意:尝试在Windows 8中查看PDF文件时存在已知问题。如果未安装任何浏览器插件,则安装Adobe Acrobat Reader是查看这些类型文档的更好方法。并尝试使用禁用IDM。

有关详细信息,请查看SO Link

答案 1 :(得分:1)

如果您的文件是在IDM中自动下载而不是您的代码问题。从浏览器禁用IDM添加后再试一次。

答案 2 :(得分:0)

我对您的问题有一个建议,但尚未测试。将文件复制到临时文件夹,然后将文件扩展名更改为( .pdf )以外的其他名称,例如,可以使用( .pdf.xyz )然后使用此文件的网址,而不是实际的网址。这样,下载管理器将不会拦截并下载文件,因为他们无法识别您添加到文件中的扩展名。您的网址现在将显示为 http://www.foo.bar/my_document.pdf.xyz http://www.foo.bar/my_document.xyz 而不是http://www.foo.bar/my_document.pdf,然后您可以创建cron作业以删除任何临时文件可以说是3个小时大。