Linux browser verhalten führt zu seltsamem cgi aufruf...
ritschmanhard
- perl
Hallo ihr Alle!
Dank des vorgeschlagenen Tests auf meine Anfrage aus
https://forum.selfhtml.org/?t=157207&m=1022611
und der Erklärung, wie man ins apache error log schreibt
https://forum.selfhtml.org/?t=157209&m=1022619
bin ich nun ein gutes Stück weiter.
Folgendes ist in meinem System zu beobachten:
Wenn ich (unter SuSe Linux, FF 2.0 und NS 7.2) ein PNG Bild anfordere, so wird mir dieses korrekt geliefert und dargestellt
Content-type: image/png\n\n{pngdata}, lässt sich mit "seitenquelltext anzeigen" (FF) auch so (als PNG in ASCII) anzeigen.
Nun passiert aber folgendes, was ich nicht verstehe (und was unter Windows mit keinem Browser {FF, IE oder NS} passiert):
Wenn ich wähle "Seite speichern unter" (FF) oder "Save page as" (NS), so steht in der zugehörigen Datei: "The image ?http://localhost/cgi-bin/command.cgi? cannot be displayed because it contains errors."; es erfolgt ein wie unten beschriebener Leeraufruf des CGI.
Wenn ich das Bild mit "Grafik speichern unter" (FF) oder "Save Image as" (NS) speichern will, so wird das cgi, welches das Bild erstellt hat erneut (unparametrisiert) aufgerufen; dies ergibt sich aus (Startabfrage CGI):
if (defined $ENV{'CONTENT_LENGTH'})
{
#lies eingabe
}
else
{
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "</head>\n";
print "<body>\n";
print "<p>Leer</p>\n";
print "</body>\n";
print "</html>\n";
die;
}
und in dem zu speichernden File steht dann:
<html>
<head>
</head>
<body>
<p>Leer</p>
</body>
</html>
Ich benötige aber das Bild....
Wie kann ich dieses Verhalten/meinen Code ändern, dass ich die Bilddaten gespeichert bekomme?
Noch eine Anmerkung: Da ich für das Bild ein eigenes Fenster öffne (src="about:blank) und dem Formular bei CGI Aufruf dieses Fenster als target angebe, ist es eigentlich auszuschließen, dass durch das Klicken in das Grafikfenster irgendein Handler aufgerufen wird;
Im DOM-Inspector des FF steht die Seite auch nur als:
html
-body
-img
src http://localhost/cgi-bin/command.cgi
alt http://localhost/cgi-bin/command.cgi
Ich vermute, dass sich die Browser unter NS/FF Linux des src attributs für einen download bedienen wollen. Da aber keine serverseitige Speicherung erfolgt, kann dies nicht funktionieren.
Ich danke Euch,
Richard