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:(