Hallo.
Ich habe eine Uploadfunktion für mein Fotoalbum. Man kann dort Fotos hochladen, die dann verkleinert gespeichert werden sollen. An sich funktioniert auch alles. Nur wenn die Bilder eine gewisse Größe übersteigen, wird aus dem verkleinern nichts.
Fehlermeldung:
"Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 10240 bytes) in ... on Line..."
Dort steht imagecreatefromjpeg().
Jetzt würde ich gerne wissen, ob das am Quellcode liegt (unsaubere Programmierung oder sowas) oder ob ich nichts dagegen tun kann und damit leben muss, dass der zur Verfügung gestellte Speicher nicht reicht.
Ich habe den Quellcode mal um den überflüssigen Schnickschnack erleichtert:
Peter Silie
Ich habe eine Uploadfunktion für mein Fotoalbum. Man kann dort Fotos hochladen, die dann verkleinert gespeichert werden sollen. An sich funktioniert auch alles. Nur wenn die Bilder eine gewisse Größe übersteigen, wird aus dem verkleinern nichts.
Fehlermeldung:
"Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 10240 bytes) in ... on Line..."
Dort steht imagecreatefromjpeg().
Jetzt würde ich gerne wissen, ob das am Quellcode liegt (unsaubere Programmierung oder sowas) oder ob ich nichts dagegen tun kann und damit leben muss, dass der zur Verfügung gestellte Speicher nicht reicht.
Ich habe den Quellcode mal um den überflüssigen Schnickschnack erleichtert:
PHP-Code:
<?php
$path = "./Fotoalben/".$_POST['dir']."/".$_FILES['foto']['name'];
if(!file_exists($path)){
move_uploaded_file($_FILES['foto']['tmp_name'], $path);
$size = getimagesize($path);
$oldwidth = $size[0];
$oldhight = $size[1];
if($oldwidth <= $oldhight){
$hight = 550;
$width = intval($oldwidth*$hight/$oldhight);
}
else{
$width = 550;
$hight = intval($oldhight*$width/$oldwidth);
}
if($oldwidth or $oldhight > 550){
$input=imagecreatefromjpeg($path);
$output=imagecreatetruecolor($width,$hight);
imagecopyresampled($output,$input,0,0,0,0,$width,$hight,$oldwidth,$oldhight);
imagejpeg($output, $path);
}
}
?>
Peter Silie
Kommentar