Bild Upload und die Thumbnail Erstellung

oppa

Mitglied
Nabend,

ich habe ein großes Problem:

Ich habe ein Registrierscript, bei dem man dazu auch noch ein Bild von sich hochladen kann.
Viele der Nutzer haben nunmal nicht gerade die Super PC Kenntnisse, somit sollte es möglich sein relativ große Bilder hochzuladen.

Das ist ja soweit kein Problem, nur möchte ich quasi das Original hochladen. aus diesem dann quasi ein Thumb erstellen und ein "großes Bild" (400px). Das "Riesige" Original lösche ich danach wieder.

Hier mal der Code:

register.php (nur der wichtige Auszug)
PHP:
$bild_id=time();
$bild_name=$bild_id.".jpg";
						
if(copy($_FILES["reg_foto"]["tmp_name"], "bilder/".$bild_name)) {

// Thumbnails erstellen
							
include("scripts/thumbnails_erstellen.php");
							
// Nachdem Thumbnails erstellt wurden, das Original Bild löschen
unlink("bilder/".$bild_name);
}

Und hier dann die thumbnails_erstellen.php:
PHP:
// Thumbnail erstellen
//////////////////////

// Anmerkungen:
//
// $dir = Pfad für das Verzeichnis, in dem sich das upgeloadete Bild befindet
// $filename = dateiname.jpg
$dir="bilder/";
			$filename=$bild_name;
			$filename2=$bild_name;

// Größe des Bildes auslesen

$size = getimagesize("$dir$filename");
$width = $size[0];
$height = $size[1];

// Breite des Thumbnails festlegen (Höhe wird automatisch angepasst)
$width_tn = 450;
$height_tn = intval($height * $width_tn / $width);

// Bei GD < 2.0.1: ImageCreateTrueColor -> ImageCreate, ImageCopyResampled -> ImageCopyResized

$picture = ImageCreateFromJPEG("$dir$filename");
$picture_tn = ImageCreateTrueColor($width_tn,$height_tn);
ImageCopyResampled($picture_tn,$picture,0,0,0,0,$width_tn,$height_tn,$width,$height);

// Endung "_tn" bei Dateiname hinzufügen, vor ".jgp"

$filename = explode (".", $filename);
$tn = "_big.";

// Thumbnail in $dir mit angepasstem $filename speichern, JPG Qualität: 95

ImageJPEG($picture_tn,"$dir$filename[0]$tn$filename[1]",95);

// Temporären Speicher auf Server wieder frei geben

ImageDestroy($picture);
ImageDestroy($picture_tn);

// Breite des Thumbnails festlegen (Höhe wird automatisch angepasst)

$width_tn = 110;
$height_tn = intval($height * $width_tn / $width);

// Bei GD < 2.0.1: ImageCreateTrueColor -> ImageCreate, ImageCopyResampled -> ImageCopyResized

$picture = ImageCreateFromJPEG("$dir$filename2");
$picture_tn = ImageCreateTrueColor($width_tn,$height_tn);
ImageCopyResampled($picture_tn,$picture,0,0,0,0,$width_tn,$height_tn,$width,$height);

// Endung "_tn" bei Dateiname hinzufügen, vor ".jgp"

$filename2 = explode (".", $filename2);
$tn = "_tn.";

// Thumbnail in $dir mit angepasstem $filename speichern, JPG Qualität: 95

ImageJPEG($picture_tn,"$dir$filename2[0]$tn$filename2[1]",95);

// Temporären Speicher auf Server wieder frei geben

ImageDestroy($picture);
ImageDestroy($picture_tn); 

$thumb_bild = "$filename2[0]$tn$filename2[1]";

?>

Vielleicht könnt ihr mir helfen ? Habe ich was nicht bedacht ?

Meistens hört das Script nach einiger zeit auf ? Liegt es eventuell an den Daten die der Server durch die Bilder verarbeiten muss ?

Vielen Dank,

der verzweifelte Alex :confused:
 
So, falls es jemand liest:

ich hab das problem nun gelöst indenm ich per ini_set() das "memory_limit" hochsetze,

@blizzard3mb: Klaro.

Lieben Gruß
Alex
 
Zurück