Saya ingin menampilkan file PDF pengguna saya. Alasan mengapa saya menggunakan cgi untuk menampilkan pdf adalah saya ingin melacak klik untuk pdf, dan menyembunyikan lokasi sebenarnya dari pdf yang disimpan.
Saya telah mencari di Internet dan hanya menemukan cara menampilkan dialog simpan kepada pengguna dan membuat pdf, bukan menampilkan file kepada pengguna.
Yang saya inginkan adalah menunjukkan kepada pengguna file pdf saya, bukan membuat atau mengunduh pdf. Inilah yang saya dapatkan dari dokumentasi resmi php:
<?php
header('Content-type: application/pdf');
readfile('the.pdf');
?>
Juga kode perl hasil pencarian google saya:
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
jika Anda melakukannya dengan ruby, tolong katakan padaku. Tapi saya tidak yakin apakah dukungan server saya benar.
Maaf jika kode saya terlalu jauh dari metode untuk menampilkan pdf, karena saya tidak tahu apa-apa tentang pemrosesan pdf dan bagaimana menerapkan masalah ini.
Mari kita asumsikan bahwa pengguna memiliki plug-in Adobe Reader. Jadi, bagaimana cara mengatasi masalah saya?
edit : Saya ingin menampilkan file pdf biasa. Tujuan utama saya: melacak file pdf saya dan menggunakan beberapa url mewah.
edit : Inilah kode php utama saya:
<?php
$file='/files/the.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="the.pdf"');
@readfile($file);
?>
edit : Sekarang kode bekerja. Tetapi bilah kemajuan pemuatan (pada plugin Adobe Reader X) tidak muncul. Mengapa? Ada yang bisa membantu saya? Inilah kode utama saya:
<?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 : Semua masalah saya terpecahkan. Inilah kode terakhirnya:
<?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);
?>
Terima kasih! :)