Cheatah: PDF-Datei mit perl an Browser zurückgeben

Beitrag lesen

Hi,

ich möchte mit hilfe eines Formulares einen nummer eingeben, die in meinem script
eine pdf-datei aufrufen soll und an den browser zurückgeben soll, so das automatisch
acrobat reader aufgerufen wird.

das Verhalten des Client kannst Du nicht bestimmen, sondern nur die Wahrscheinlichkeit des von Dir gewünschten Verhaltens vergrößern.

#!/perl/bin/perl.exe

#!/perl/bin/perl -w
use strict;

read(STDIN, $input, $ENV{'CONTENT_LENGTH'});

NEIN!

Benutze bitte CGI.pm:

use CGI ':standard';
my $nummer = param('nummer');

if (nummer == 001160)

Hättest Du den w-Switch benutzt (s.o.), wäre Dir Dein Syntaxfehler aufgefallen.

»»  {

print "Content-type: application/pdf \n\n";

print header('application/pdf');

print "4008420.pdf";

Und was soll die Ausgabe der Zeichenkette '4008420.pdf'? Du möchtest doch den Inhalt der Datei ausgeben, oder? Dann mußt Du die Datei öffnen, auslesen und ausprinten. Auf archaischen Systemen (Windows) ist der Binmode zu setzen, siehe

perldoc -f binmode

else

»»  {

print "Fehler";

»»  }

Das gibt einen schönen Internal Server Error, weil der HTTP-Header fehlt. Zumindest einen Content-Type solltest Du zurückgeben.

Ich kann die Datei mit einem normalen link ohne Probleme aufrufen, aber über das script
gibt er mir immer die Fehlermeldung:  "Document contained no data. Try later, or contact the server‚s
administrator." als Popup-Fenster.

Dann würde ich auf Apache wechseln, der hätte Dir einen sauberen 500-Fehler geliefert. Im Error-Log steht dann übrigens mehr.

Cheatah