08. Imagedestroy ($im); // Zeiger wieder freigeben
9
09. ?>
Damit wird die Grafik an den Browser übergeben und angezeigt.
Ich möchte die Grafik aber NICHT ausgeben, sondern als Datei speichern,
dies sollte mit folgender Syntax gehen:
1
bool imagepng ( resource $image [, string $filename [, int $quality [, int $filters ]]] )
Und genau das geht nicht, als Fehlermeldung erscheint:
Die Grafik ".....php" kann nicht angezeigt werden, weil sie Fehler
enthält.
??? Wer hat nen Tipp
Danke sagt Peter
Dank des "Content-Type"-Headers erwartet der Browser ein png-Bild. Wenn
du die png aber nur auf dem Server speicherst (das macht der zweite
Parameter von imagepng) und nicht mitsendest, bekommt der Browser keine
Bilddaten und sagt dass das Bild das bei ihm ankommen sollte fehlerhaft
ist.
Wenn der Browser die Datei beim Aufruf nur standardmässig speichern
statt anzeigen soll, kann man dem Browser das einfach via
"Content-Disposition"-Header beibringen:
header('Content-Disposition: attachment; filename="bilddatei.png');
xphp schrieb:> Irgendwie unglaubwürdig.
Unglaubwürdig ist vor allem wenn man etwas nicht verstanden hat es nicht
wenigstens mal auszuprobieren aber anderen was unterstellen will...
Erstmal kann man die GLEICHEN Header beliebig oft senden, ob das den
Client Glücklich macht sei dahingestellt... UNTERSCHIEDLICHE Header zu
senden ist absolut üblich und da spricht überhaupt nichts dagegen (und
ist sogar oft zwingend).
xphp schrieb:> "Header allready send"
Tritt nur auf wenn du NACHDEM du angefangen hast Inhalte zu senden
nochmal versuchst eine weiteren Header zu senden. Solange man noch
nichts gesendet hat (auch nicht implizit) kannst du soviele Header
senden wie du magst.
Header already sent, kommt auch dann, wenn vor dem beginnenden <?php
bereits Zeichen sind. Seh nochmal nach, ob da wirklich kein Whitespace
ist. Wenn da wirklich keiner ist, dann werf mal den Hexeditor an,
vielleicht hat dein Editor ne UTF8-BOM an den Anfang geschrieben...
EDIT: Ich hab dein Skript mal getestet, bei mir funktioniert's.