我想向我的用户展示PDF文件。我使用cgi显示pdf的原因是我想跟踪pdf的点击次数,并隐瞒已保存pdf的真实位置。
我一直在Internet上搜索,仅发现如何向用户显示保存对话框并创建pdf,而不向用户显示文件。
我想要的是向用户显示我的pdf文件,而不是创建或下载 pdf。这是我从官方php文档中获得的信息:
<?php
header('Content-type: application/pdf');
readfile('the.pdf');
?>
还有我的google-search-result perl代码:
open(PDF, "the.pdf") or die "could not open PDF [$!]";
binmode PDF;
my $output = do { local $/; <PDF> };
close (PDF);
print "Content-Type: application/pdf\n";
print "Content-Length: " .length($output) . "\n\n";
print $output
如果您是用红宝石做的,请对我说。但是我不确定我的服务器是否支持导轨。
对不起,如果我的代码与显示pdf的方法相距太远,因为我对pdf处理以及如何实现此问题一无所知。
假设用户具有Adobe Reader插件。那么,如何解决我的问题呢?
编辑:我想显示纯pdf文件。我的主要目的:跟踪我的pdf文件并使用一些精美的网址。
编辑:这是我的主要PHP代码:
<?php
$file='/files/the.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="the.pdf"');
@readfile($file);
?>
编辑:现在代码正在工作。但是,加载进度栏(在Adobe Reader X插件上)没有显示。为什么?有人可以帮助我吗?这是我的主要代码:
<?php
$file='./files/the.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="the.pdf"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
@readfile($file);
?>
编辑:我所有的问题都解决了。这是最终的代码:
<?php
$file = './path/to/the.pdf';
$filename = 'Custom file name for the.pdf'; /* Note: Always use .pdf at the end. */
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file);
?>
谢谢!:)