"Bild speicher unter" bei "ImageJPEG"
Crowicrow
- php
Hallo liebe Selfhtml-Foren-Gemeinde,
meistens finde ich dank eurer und anderer Antworten selbst eine Lösung für mein Problem, heute muss ich jedoch selbst eine Frage stellen.
Ich schreibe ein PHP-Script, das ein Bild mit Hilfe von imageCreateFromJPEG, ImageCreateTrueColor, ImageCopyResampled und ImageJpeg von einem Original JPEG verkleinert. Dieses Bild wird korrekt im Browser angezeigt.
Wenn ich nun aber über das Kontextmenue meines IE auf "Bild speichern unter" klicke, speichert der Browser nur als BMP.
Lokale Probleme mit dem Browserchache kann ich aussließen, da auf meinen beiden Rechnern dieser Fehler im IE auftritt und beide Browser chache-gesäubert sind. Firefox jedoch speichert mit "Grafik speichern unter" das Bild richtig als JPG.
Ach ja, die Funktion wird aufgerufen über eine URL mit der Endung ".jpg" oder ".JPG" über eine 404-Fehlerseite.
Hier der Quellcode:
<?
// Header Information für ein Bild
header("Status: 200 OK");
header("HTTP/1.1 200 OK");
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Content-Type: image/jpeg");
// $ilddatei ist die absolute Adresse des Bildes auf dem Server
$size=getimagesize($bilddatei);
$breite=$size[0];
$hoehe=$size[1];
$neueHoehe=intval($hoehe*$neueBreite/$breite);
$bilddatei = imageCreateFromJPEG($Absolute_Adresse_Des_Bildes);
$bilddatei2 = ImageCreateTrueColor($neueBreite,$neueHoehe);
ImageCopyResampled($bilddatei2,$bilddatei,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJpeg($bilddatei2, "", 100);
?>
Was ist mir da wohl entgangen?
Besten Dank, Crowicrow
Hi!
Die Wege des IE sind unergründlich - schon mal $SEOYC[1] befragt?
Versuch einer Ursachenforschung:
Ach ja, die Funktion wird aufgerufen über eine URL mit der Endung ".jpg" oder ".JPG" über eine 404-Fehlerseite.
Warum dieses?
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
Warum jenes?
off:PP
[1] search engine of your choice
Habe es inzwischen mehr zufällig selbst gelöst.
Bilder, die nach dem Laden in den Browser noch gespeichert werden sollen, müssen im Cache liegen.
Wenn man diese Zeilen
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
durch
header("Cache-Control: post-check=0, pre-check=0");
ersetzt, funktionierts einwandfrei. Die Bilder werden so im Chache abgelegt und können per "Bild speichern unter" vom Chache aus in den entsprechenden Ordner verschoben werden (so erklär ich mir das jedenfalls).