Bilder upload und dann auf dem verkleinert speichern

A5 Infoschlampe

Erfahrenes Mitglied
Hi, nochmal ne frage:

die benutzer sollen im system ihre eigenen bilder hochladen dürfen, das script dafür habe ich irgendwo schon mal gesehen, weiss aber nicht genau wo das war. kannes mir jemand schreiben?
die bilder sollen auf ein bilderserver verzeichnis hochgeladen werden und ZUDEM *automatisch* auf eine festgelegt maximal grösste minmiert bzw. gestrecht werden - so dass der server nicht übermüllt wird und VORALLEM: Jedes Bild die gleiche einheitliche Grösse besitzt!

Also das geht über meine php-Kenntnisse peinlicherweise hinaus, wäre nett wenn jemand mir helfen könnte.

dankeschön
 
1.) der Upload geht über ein "ganz normales" HTML-Formular. Damit wird das Bild aber nur temporär auf dem Webserver gespeichert, und Du musst es noch an die Stelle kopieren, wo das Bild hinsoll.

http://www.tutorials.de/forum/showthread.php?threadid=9238


2.) das geht über die GD-Library, die Dein Webserver natürlich unterstützen muss.

http://www.tutorials.de/forum/showthread.php?threadid=7330

statt imagecreate() kannst Du dann die Funktion imagecreatefromjpeg() nehmen.

hoffe das hilft erstma weiter ;)

Dunsti
 
hi,

vorbildlich wie ich bin, spare ich mir einen Thread und benutze einen alten (bekomme ich dafür was geschenkt? ;))

so genug drumherum geredet, ich habe ein kleines Problem:
Ich schreibe derzeit ein Screenshotscript... bin damit auch fertig, aber es funktioniert nur zu 90%. Am Ende landen alle Einträge in der DB und auf dem Server befinden sich die jpg-Files mit dem richtigen Namen. ALlerdings sind sie alle 0 kb groß ;)

Irgendwo läuft was schief, aber ich weiß absolut nicht wo.

Hier mal die nötigen Codeschnipsel:
PHP:
$screenpfad = "/XXX/XXX/";
$screensignatur = "/XXX/XXX/sig.jpg";
$quality = 80;
$tquality = 50;
// $newfile IST DIE DATEI AUS DEM UPLOAD-FELD

# ++ Zwischenspeicherdatei
$oldscreen = "$screenpfad"."temp.jpg";
copy($newfile,$oldscreen);
# -- Zwischenspeicherdatei

# ++ Orginal Bild Daten holen
$size=getimagesize("$oldscreen");
$oldwidth = "$size[0]";
$oldheight = "$size[1]";
$oldtype = "$size[2]";
# -- Orginal Bild Daten holen

if ($oldtype != "2") { echo "Fehler beim uploaden, keine jpeg Datei!"; $error = 1; }

if ($error != 1) {
# ++ Datenbank speichern
verbinden();
mysql_query("INSERT into scdox_screen (name, kommentar, datum, kat) VALUES ('$name', '$kommentar', '$now', '$kat')");
$id = mysql_insert_id();
# -- Datenbank speichern

# ++ Thumb daten
$tnewscreen = "$screenpfad"."t_"."$id.jpg"; 
# -- Thumb daten

# ++ Thumbnail erstellen
  $timage = imagecreatefromjpeg("$oldscreen");
  if ($screen_true_color == 1) { $tnew = ImageCreateTrueColor($tnewwidth,$tnewheight); }
  else { $tnew = ImageCreate($tnewwidth,$tnewheight); }
  imagecopyresized($tnew,$timage,0,0,0,0,$tnewwidth,$tnewheight,$oldwidth,$oldheight);
  imagejpeg($tnew,"$tnewscreen",$tquality);
  imagedestroy($timage);
  imagedestroy($tnew);
# -- Thumbnail erstellen

}

ich hoffe mal, dass ich so früh am morgen nichts übersehen habe ;)
da ich nur teile aus dem Quellcode rausgeschnippselt habe (dazwischen wären halt noch codes gewesen die für das CMS die Vorgänge loggen und in die DB schreiben)
und wie man sieht ist es auch nur der Code für das Thumbnail, logischerweise gibt es das gleiche nochmals für das 800*600 Bild
falls jemand den fehler sieht -> sagen :)

wäre euch wirklich sehr dankbar!

gruß
Franky
 
Zuletzt bearbeitet:
also ich hab den code nochmal gecheckt. eigentlich muss es gehen.

kann es an irgendwelchen Einstellungen von PHP liegen?
das seltsame ist übrigens auch, dass keine Fehlermeldung erstellt wird. alles läuft also richtig. nur die Dateien werden nicht richtig gespeichert bzw. nur als 0kb Files...

gruß
Franky
 
Zurück