Ich möchte meinen Benutzern PDF-Dateien anzeigen. Der Grund, warum ich cgi verwende, um das PDF anzuzeigen, ist, dass ich die Klicks für das PDF verfolgen und den tatsächlichen Speicherort des gespeicherten PDFs verschleiern möchte.
Ich habe im Internet gesucht und nur herausgefunden, wie ich den Benutzern den Dialog zum Speichern und Erstellen eines PDFs zeigen kann, nicht die Dateien den Benutzern.
Was wollte ich ist zeigen die Benutzer meine PDF - Dateien, nicht die Erstellung oder laden Sie die pdf. Folgendes habe ich aus der offiziellen PHP-Dokumentation erhalten:
<?php
header('Content-type: application/pdf');
readfile('the.pdf');
?>
Auch mein Google-Suchergebnis-Perl-Code:
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
Wenn du es auf Rubin machst, sag es mir bitte. Ich bin mir jedoch nicht sicher, ob mein Server Schienen unterstützt.
Es tut mir leid, wenn mein Code zu weit von der Methode entfernt ist, um das PDF anzuzeigen, da ich nichts über die PDF-Verarbeitung und die Implementierung dieses Problems weiß.
Nehmen wir an, die Benutzer haben das Adobe Reader-Plug-In. Wie kann ich mein Problem beheben?
Bearbeiten : Ich möchte eine einfache PDF-Datei anzeigen. Mein Hauptzweck: Verfolge meine PDF-Dateien und verwende einige ausgefallene URLs.
edit : Hier ist mein Haupt-PHP-Code:
<?php
$file='/files/the.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="the.pdf"');
@readfile($file);
?>
Bearbeiten : Jetzt funktioniert der Code. Der Ladefortschrittsbalken (im Adobe Reader X-Plugin) wird jedoch nicht angezeigt. Warum? Kann mir jemand helfen? Hier ist mein Hauptcode:
<?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 : Alle meine Probleme gelöst. Hier ist der endgültige Code:
<?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);
?>
Vielen Dank! :) :)