Problem beim Dateidownload
Siechfred
- perl
Hallo Forum,
ich habe ein kleines Download-Problem. Wenn man hier: http://www.siechfreds-welt.de/functions.html ganz unten auf den Download-Button klickt, wird mir beim dann folgenden Speichern-Dialog als Dateiendung immer ein .pl angehängt, obwohl die Datei eigentlich auf .html endet. Die entsprechende Subroutine sieht so aus:
sub dl_file {
@data = stat("$path_file");
print "Content-Type: application/octet-stream;\n";
print "Content-Length: $data[7];\n";
print "Content-Disposition: filename="$file"\n\n";
open (FILE,"<$path_file");
binmode(FILE);
binmode(STDOUT);
while(defined($outfile = <FILE>)) {
print "$outfile";
};
close(FILE);
chdir($path);
unlink($file);
}
Fehlt da vielleicht noch irgendeine Angabe? Der Vollständigkeit halber: In $file steht "12345678.html", in $path_file "../data/12345678.html", in $path "../data".
hasta luego
Torsten
Hallo,
ich habe ein kleines Download-Problem. Wenn man hier: http://www.siechfreds-welt.de/functions.html ganz unten auf den Download-Button klickt, wird mir beim dann folgenden Speichern-Dialog als Dateiendung immer ein .pl angehängt, obwohl die Datei eigentlich auf .html endet.
Die Sache mit dem Download klappt ja leider oft nicht richtig. Trotz korrekter HTTP Header haben die Browser da als ihre Probleme. Versuche mal dein Script nicht mit ./cgi-bin/generate.pl aufzurufen sondern als ./cgi-bin/generate.pl/12345678.html
Wenn ich mir recht erinnere startet der Webserver dann tortzdem anstandslos dein Script (das was hintendran übergeben wird findest du dann in einer Umgebungsvariable wieder), für den Browser schaut es von der Endung her aber so aus, als wäre es eine HTML Datei.
Viele Grüße,
Stefan
Hi Torsten,
ich habe ein kleines Download-Problem. Wenn man hier: http://www.siechfreds-welt.de/functions.html ganz unten auf den Download-Button klickt, wird mir beim dann folgenden Speichern-Dialog als Dateiendung immer ein .pl angehängt,
wer zwingt Dich dazu, den Dateinamen Deines Skripts auf ".pl" enden zu lassen?
(Innerhalb von /cgi-bin solltest Du doch andere Möglichkeiten haben.)
Viele Grüße
Michael
Hallo Michael,
wer zwingt Dich dazu, den Dateinamen Deines Skripts auf ".pl" enden zu lassen?
Kapiert. Gleich noch 'ne Frage: Würde ich das Script z.B. generate.html nennen, muss ich dafür irgend etwas an der Serverkonfiguration ändern oder geht das (Hauptsache das Script liegt im Verzeichnis cgi-bin)?
mfg Torsten
Hi,
Kapiert. Gleich noch 'ne Frage: Würde ich das Script z.B. generate.html nennen, muss ich dafür irgend etwas an der Serverkonfiguration ändern oder geht das (Hauptsache das Script liegt im Verzeichnis cgi-bin)?
Kommt meines wissens darauf an, wie du konfiguriert hast, dass perl Dateien ausgeführt werden. Wenn es so eingestellt ist, dass über die Shebang entschieden wird, was gestartet, dürfte das kein Problem sein. Wenn du aber es aber (z.B. wegen windows) so konfiguriert hast, dass es über die Dateiendung entschieden wird, musst du die Serverkonifuration aendern. Aber das musst du gar nicht. Mach es doch einfach so http://example.org/generate.pl/das_ist_der_tolle_dateiname.endung
Das benötigt, wenn ich mich richtig, erinnere auch ein Apache Modul, was allerdings standardmäßig aktiviert ist.
Grüße Andres Freund
Hi Siechfred,
wer zwingt Dich dazu, den Dateinamen Deines Skripts auf ".pl" enden zu lassen?
Gleich noch 'ne Frage: Würde ich das Script z.B. generate.html nennen,
Du könntest es auch "generate.html.pl" nennen, Content Negotiation einschalten und auf "generate.html" verlinken ... oder in dem entsprechenden Verzeichnis (vielleicht gar nur für diese eine Datei !?) den CGI-Handler auf *.html mappen.
muss ich dafür irgend etwas an der Serverkonfiguration ändern oder geht das
(Hauptsache das Script liegt im Verzeichnis cgi-bin)?
Wie ist Dein /cgi-bin definiert?
(http://aktuell.de.selfhtml.org/artikel/cgiperl/inbetriebnahme/#a6)
Viele Grüße
Michael