Voglio mostrare ai miei utenti i file PDF. Il motivo per cui utilizzo cgi per mostrare il pdf è che desidero tenere traccia dei clic per il pdf e nascondere la posizione reale del pdf salvato.
Ho cercato su Internet e ho trovato solo come mostrare la finestra di dialogo di salvataggio agli utenti e creare un pdf, non mostrare i file agli utenti.
Quello che volevo era mostrare agli utenti i miei file pdf, non creare o scaricare il pdf. Ecco cosa ho ottenuto dalla documentazione ufficiale di php:
<?php
header('Content-type: application/pdf');
readfile('the.pdf');
?>
Anche il mio codice perl dei risultati di ricerca di 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
se lo fai su ruby, per favore dillo a me. Ma non sono sicuro che il supporto del mio server ritorni.
Scusa se il mio codice è troppo lontano dal metodo per mostrare il pdf, poiché non so nulla sull'elaborazione del pdf e su come implementare questo problema.
Supponiamo che gli utenti dispongano del plug-in di Adobe Reader. Quindi, come risolvere il mio problema?
modifica : voglio mostrare un semplice file pdf. Il mio scopo principale: tenere traccia dei miei file pdf e utilizzare alcuni URL fantasiosi.
modifica : ecco il mio codice php principale:
<?php
$file='/files/the.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="the.pdf"');
@readfile($file);
?>
modifica : ora il codice funziona. Ma la barra di avanzamento del caricamento (sul plug-in Adobe Reader X) non viene visualizzata. Perché? Qualcuno può aiutarmi? Ecco il mio codice principale:
<?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);
?>
modifica : tutti i miei problemi risolti. Ecco il codice finale:
<?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);
?>
Grazie! :)