Der Martin: Bild vor Speichern in MySQl-DB verkleinern

Beitrag lesen

Hi,

ich muss Bilddateien in einer MySQl-DB abspeichern (ist so ausdrücklich gewünscht, MIR sind die Nachteile bekannt!).

ja klar, der Kunde ist König - aber ich dachte, die Monarchie sei abgeschafft ... ;-)

/////////////////////////////////////////
//Datei verkleinern
$size = getimagesize($tmpname);
$src_img = imagecreatefromjpeg($hndFile);
$dst_img = imagecreatetruecolor(150,200);
imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, 150, 200, $size[0], $size[1]);
imagejpeg($hndFile);
/////////////////////////////////////////

Ist dir überhaupt klar, was imagejpeg() tut, wenn es mit nur einem Parameter aufgerufen wird? - Es gibt die erzeugten JPEG-Daten direkt an den Client (Browser) aus. Was auch sonst, mehr Informationen stehen der Funktion ja nicht zur Verfügung.
Wenn du die erzeugten JPEG-Daten wieder in eine Datei speichern willst, solltest du deren Namen als zweiten Parameter angeben. Ob du dabei die temporäre Datei $tmpname überschreiben möchtest, ist Ermessenssache.

$data = addslashes(fread($hndFile, filesize($tmpname)));

Und hier liest du dann immer noch die unveränderte Datei. Übrigens ist addslashes() eine ganz schlechte Idee und gehört eigentlich verboten. Eine richtige, dem Zielkontext angemessene Maskierung/Codierung sollte dort und nur dort erfolgen, wo Daten in diesen Zielkontext eingebracht werden. In deinem Fall also bei der Übergabe an mySQL.

Ohne den Teil "//Datei verkleinern" klappt es prima. Wenn ich den Teil einsetze, dann passiert leider nichts ...

Das kann ich mir nicht vorstellen - es müsste zumindest soviel passieren, dass du die unveränderte Originaldatei weiterverarbeitest, so wie sie hochgeladen wurde.

So long,
 Martin

--
F: Kennt jemand ein Automobil-Märchen?
A: Radkäppchen und der böse Golf.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(