Tôi muốn hiển thị tệp PDF cho người dùng của mình. Lý do tại sao tôi sử dụng cgi để hiển thị pdf là tôi muốn theo dõi số lần nhấp chuột cho pdf và che giấu vị trí thực của pdf đã lưu.
Tôi đã tìm kiếm trên Internet và chỉ tìm thấy cách hiển thị hộp thoại lưu cho người dùng và tạo pdf, không hiển thị tệp cho người dùng.
Điều tôi muốn là hiển thị cho người dùng các tệp pdf của tôi chứ không phải tạo hoặc tải xuống pdf. Đây là những gì tôi nhận được từ tài liệu php chính thức:
<?php
header('Content-type: application/pdf');
readfile('the.pdf');
?>
Cũng như mã perl google-search-result của tôi:
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
nếu bạn làm điều đó trên ruby, xin vui lòng nói điều đó với tôi. Nhưng tôi không chắc liệu máy chủ của mình có hỗ trợ đường ray hay không.
Xin lỗi nếu mã của tôi ở quá xa so với phương pháp hiển thị pdf, vì tôi không biết gì về xử lý pdf và cách thực hiện vấn đề này.
Giả sử rằng người dùng có trình cắm Adobe Reader. Vì vậy, làm thế nào để khắc phục sự cố của tôi?
chỉnh sửa : Tôi muốn hiển thị tệp pdf thuần túy. Mục đích chính của tôi: theo dõi các tệp pdf của tôi và sử dụng một số url ưa thích.
chỉnh sửa : Đây là mã php chính của tôi:
<?php
$file='/files/the.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="the.pdf"');
@readfile($file);
?>
chỉnh sửa : Bây giờ mã đang hoạt động. Nhưng thanh tiến trình tải (trên plugin Adobe Reader X) không hiển thị. Tại sao? Bất cứ ai có thể giúp tôi? Đây là mã chính của tôi:
<?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);
?>
chỉnh sửa : Tất cả các vấn đề của tôi đã được giải quyết. Đây là mã cuối cùng:
<?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);
?>
Cảm ơn! :)