2

我正在使用 php 来显示 pdf

@readfile($actualfilename);
                        header('Content-type:pdf');      
                   header('Content-Disposition: inline');
                   header('Content-Transfer-Encoding: binary');
                   header('Content-Length: ' . filesize($actualfilename));
                   header('Accept-Ranges: bytes');

问题出在它显示的标题栏上

标题图片

当我使用

header('Content-type:application/pdf');

它提示我下载文件,当我使用时出现同样的问题

header('Content-Disposition: inline; filename='.$fakefilename.'');

此代码仅在 Firefox 中显示 pdf 文件。IE,chrome提示我下载文件?

4

1 回答 1

1

您是否尝试更改浏览器的标题栏文本(或显示文件名的任何位置)?

如果是这样,那么您在这里就不走运了,因为这将不起作用,因为由浏览器决定如何/在哪里(如果有的话)显示文件名。

但是,有一些可能的解决方法:您可以使用服务器端工具,例如mod_rewrite在 Apache 环境中将请求(如download/readme.pdf在幕后)重定向到readfile.php?file=readme.pdf. 在这种情况下,浏览器不会知道隐藏的重写,它实际上会显示readme.pdf为文件名(即使实际文件名或服务器端的脚本名不同)。

于 2012-08-12T19:19:51.827 回答