Hallo zusammen,
ich habe ein Problem mit meinem Bilderscript.
Der Upload eines Bildes funktioniert und das Bild wird auch korrekt abgelegt. Allerdings erstellt er mir einfach kein Thumb davon.
Leider sehe ich den Wald vor lauter Bäumen nicht mehr, vielleicht jemand von euch?
Vielen Dank für die Hilfe
Jörn
ich habe ein Problem mit meinem Bilderscript.
Der Upload eines Bildes funktioniert und das Bild wird auch korrekt abgelegt. Allerdings erstellt er mir einfach kein Thumb davon.
Leider sehe ich den Wald vor lauter Bäumen nicht mehr, vielleicht jemand von euch?
PHP-Code:
if (is_uploaded_file($_FILES["product_imageurl"]["tmp_name"]))
{
if (strrpos($_FILES["product_imageurl"]["type"],"image/") === false)
{
$inform = "Warnung: Falsche Bilddatei! Daten wurden aktualsiert, jedoch nicht der Link!";
}else
{
$newpath = "upload/image/".time(). substr($_FILES["product_imageurl"]["name"],strrpos($_FILES["product_imageurl"]["name"],"."));
echo $newpath; //Ausgabe /upload/image/1291908266.jpg <-- funktioniert
$imgfile = $newpath;
// Erstellt ein thumbnail eines Bildes
// Ordner unter $speicherordner benötigt ggf. Schreibrechte CHMOD(777)
// Parameter:
// $imgfile: Pfad zur Bilddatei
// $speicherordner: Ordner indem die Thumbnails gespeichert werden sollen
// $filenameOnly: Soll nur der Dateiname als Name für Thumbnail verwendet werden,
// ansonsten inkl. Pfad
function thumbnail($imgfile, $speicherordner="upload/image/thumb/", $filenameOnly=true)
{
//Max. Größe des Thumbnail (Höhe und Breite)
$thumbsize = 100;
//Dateiname erzeugen
$filename = basename($imgfile);
//Fügt den Pfad zur Datei dem Dateinamen hinzu
//Aus ordner/bilder/bild1.jpg wird dann ordner_bilder_bild1.jpg
if(!$filenameOnly)
{
$replace = array("/","\\",".");
$filename = str_replace($replace,"_",dirname($imgfile))."_".$filename;
}
//Schreibarbeit sparen
$ordner = $speicherordner;
//Speicherordner vorhanden
if(!is_dir($ordner))
return false;
//Wenn Datei schon vorhanden, kein Thumbnail erstellen
if(file_exists($ordner.$filename))
return $ordner.$filename;
//Ausgangsdatei vorhanden? Wenn nicht, false zurückgeben
if(!file_exists($imgfile))
return false;
//Infos über das Bild
$endung = strrchr($imgfile,".");
list($width, $height) = getimagesize($imgfile);
$imgratio=$width/$height;
//Ist das Bild höher als breit?
if($imgratio>1)
{
$newwidth = $thumbsize;
$newheight = $thumbsize/$imgratio;
}
else
{
$newheight = $thumbsize;
$newwidth = $thumbsize*$imgratio;
}
//Bild erstellen
//Achtung: imagecreatetruecolor funktioniert nur bei bestimmten GD Versionen
//Falls ein Fehler auftritt, imagecreate nutzen
if(function_exists("imagecreatetruecolor"))
$thumb = imagecreatetruecolor($newwidth,$newheight);
else
$thumb = imagecreate ($newwidth,$newheight);
if($endung == ".jpg")
{
imageJPEG($thumb,$ordner."temp.jpg");
$thumb = imagecreatefromjpeg($ordner."temp.jpg");
$source = imagecreatefromjpeg($imgfile);
}
else if($endung == ".gif")
{
imageGIF($thumb,$ordner."temp.gif");
$thumb = imagecreatefromgif($ordner."temp.gif");
$source = imagecreatefromgif($imgfile);
}
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
//Bild speichern
if($endung == ".png")
imagepng($thumb,$ordner.$filename);
else if($endung == ".gif")
imagegif($thumb,$ordner.$filename);
else
imagejpeg($thumb,$ordner.$filename,100);
//Speicherplatz wieder freigeben
ImageDestroy($thumb);
ImageDestroy($source);
//Pfad zu dem Bild zurückgeben
return $ordner.$filename;
}
if (move_uploaded_file($_FILES["product_imageurl"]["tmp_name"], $newpath))
{
$inform = "";
$product_imageurl = $newpath;
}else
{
$inform = "Bild konnte nicht verschoben werden!!!";
}
}
}else
$product_imageurl = isset($_POST['product_imageurl_text'])?$_POST['product_imageurl_text']: $product_imageurl;
Jörn
Kommentar