Я хочу показать своим пользователям файлы PDF. Причина, по которой я использую cgi для показа pdf, заключается в том, что я хочу отслеживать клики для pdf и скрывать реальное местоположение сохраненного pdf.
Я искал в Интернете и только нашел, как показать пользователям диалоги сохранения и создать PDF, а не показывать файлы пользователям.
То, что я хотел, это показать пользователям мои pdf файлы, не создает и не загружает pdf.
Вот что я получил из официальной документации php:
<?php
header('Content-type: application/pdf');
readfile('the.pdf');
?>
Также мой код perl для результата поиска google:
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
если вы делаете это на ruby, пожалуйста, скажите это мне. Но я не уверен, что мой сервер поддерживает рельсы.
Извините, если мой код находится слишком далеко от метода, чтобы показать PDF, так как я ничего не знаю об обработке PDF и о том, как реализовать эту проблему.
Предположим, что у пользователей есть плагин Adobe Reader. Итак, как исправить мою проблему?
edit : Я хочу показать простой PDF-файл. Моя основная цель: отслеживать мои PDF-файлы и использовать некоторые необычные URL.
edit : Вот мой основной php код:
<?php
$file='/files/the.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="the.pdf"');
@readfile($file);
?>
edit : теперь код работает. Но индикатор загрузки (в плагине 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);
?>
edit : Все мои проблемы решены. Вот окончательный код:
<?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);
?>
Спасибо! :)