Heim  >  Artikel  >  Backend-Entwicklung  >  Wie zeige ich PDFs in Browsern mit Klickverfolgung und Standortverbergung mit PHP oder Perl an?

Wie zeige ich PDFs in Browsern mit Klickverfolgung und Standortverbergung mit PHP oder Perl an?

Susan Sarandon
Susan SarandonOriginal
2024-10-19 18:13:01441Durchsuche

How to Display PDFs in Browsers with Click Tracking and Location Concealment Using PHP or Perl?

Anzeigen von PDF-Dateien im Browser von Benutzern mit PHP oder Perl

Problem:Benutzer benötigen die Möglichkeit, PDF anzuzeigen Dateien in ihren Browsern mit der zusätzlichen Funktionalität, Klicks zu verfolgen und den tatsächlichen Speicherort der PDF-Datei zu verbergen.

Lösung:

Sowohl PHP als auch Perl bieten Methoden zum direkten Rendern von PDF-Dateien in einem Browser. Hier sind die grundlegenden Schritte:

PHP:

<code class="php">header('Content-type: application/pdf');
readfile('the.pdf');</code>

Perl:

<code class="perl">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</code>

Zusätzliche Überlegungen:

  • Um das PDF in die Seite einzubetten, setzen Sie den Content-Disposition-Header auf „Inline“. filename="the.pdf".
  • Stellen Sie sicher, dass Benutzer das erforderliche PDF-Reader-Plugin installiert haben (z. B. Adobe Reader).
  • Um den Ladefortschrittsbalken zu deaktivieren, deaktivieren Sie die Akzeptanzbereiche: Bytes-Header.

Beispielcode:

PHP (vollständig):

<code class="php">$file = './path/to/the.pdf';
$filename = 'Custom file name for the.pdf';

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);</code>

Perl (vollständig):

<code class="perl">use strict;
use warnings;

my $file = 'the.pdf';
my $filename = 'Custom file name for the.pdf';

open(PDF, "<$file>") or die "Could not open PDF: $!";
binmode PDF;

my $size = -s PDF;

print "Content-type: application/pdf\n";
print "Content-Disposition: inline; filename=\"$filename\"\n";
print "Content-Transfer-Encoding: binary\n";
print "Content-Length: $size\n\n";

print while <PDF>;</code>

Hinweis: Browsereinstellungen können diese Techniken außer Kraft setzen und das Herunterladen oder Öffnen der PDF-Datei in einer externen Anwendung erzwingen.

Das obige ist der detaillierte Inhalt vonWie zeige ich PDFs in Browsern mit Klickverfolgung und Standortverbergung mit PHP oder Perl an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn