Mit PHP erzeugtes Bild umbenennen

visiondpc

Erfahrenes Mitglied
Hallo, gibt es eigentlich eine Funktion, mit der man ein mit PHP erzeugtes Bild umbenennen kann?

Ich hab das Skript mal stark vereinfacht:
PHP:
# Hier stehen normalerweise die DB-Funktionen
header("Content-type: image/png");
$Grafik = imagecreatefrompng($bild);
imagepng($Grafik);

Wenn ich jetzt aber versuche das Bild mit "Rechtsklick / speichern unter" zu speichern, speichert er es natürlich unter view.php.png. Kann man das über den Header oder wie auch immer regeln, dass das Bild unter dem in der DB abgelegten Namen gespeichert wird?
 
Zuletzt bearbeitet:
hallo,

du kannst über folgende Zeile den Dateinamen setzen:

PHP:
header("Content-Disposition: attachment; filename=meinBild.jpg");
 
hallo,

du kannst über folgende Zeile den Dateinamen setzen:

PHP:
header("Content-Disposition: attachment; filename=meinBild.jpg");

FireFox nimmt dieser aber bereits automatisch als Aufforderung das Bild als Download zu starten.

PHP:
header("Content-Disposition: inline; filename=meinBild.jpg");
 
Zuletzt bearbeitet:
Danke.
Version 1 Funktionier zwar aber wie schon geschrieben nur als direkter Download im Firefox.
Wenn ich den 2. Header angebe bekomme ich nicht das Bild sondern nur den Quelltext des Bildes angezeigt.
 
PHP:
<?php
header("Content-type: image/png");
header("Content-Disposition: inline; filename=meinBild.png");  
$im = @imagecreate(110, 20)
    or die("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

Mal als Beispielbild (von php.net geklaut) funktioniert es wunderbar bei mir...?
 
Zuletzt bearbeitet:
Der Header ist völlig falsch definiert, da die Disposition des Inhalts als Parameter "filename=..." übergeben bekommt. Zumindest nen Semikolon müsste hinter das Content-Disposition, aber auch das ergäbe einen "Fehler" laut Definition.

Korrekter:
PHP:
header("Content-Disposition: inline; filename=meinBild.jpg");
 
Zurück