Fehler bei großen Bilder

Tailor

Grünschnabel
ich arbeite gerade an einem Uploadscript für Bilder. Bilder welche zu groß sind werden kleiner gemacht und komprimiert. Bei Bildern mit 200kb und ner Auflösung von 1280 x 1024 das Script noch fehlerfrei. Versuche ich aber n Bild von der Digicam hochzuladen, wird folgende Fehlermeldung ausgegeben

Fatal error: Allowed memory size of 20971520 bytes exhausted at (null):0 (tried to allocate 9088 bytes) in /home/www/kunden/___/bildergalerie/upload.php on line 155

Code:
$info = getimagesize ($file_tmp);

         if ($info[2] == 2) {
            if ($info[0] > 750 or $info[1] > 570) {
        	// Bild verkleinern, Breite/Höhe berechnen
				$size_x = $info[0];
				$size_y = $info[1];
				$ratio = $size_x / $size_y;
					if ($ratio > 1) {  //Querformat
						$newsize_x = 750;
						$newsize_y = ceil(750/$ratio);}
							   
					else {
						$newsize_y = 570;
						$newsize_x = ceil(570*$ratio);}

					$new_image = imagecreatetruecolor($newsize_x, $newsize_y);  //Create a new true color image
					 $old_image = imagecreatefromjpeg($file_tmp);   			imagecopyresampled($new_image, $old_image, 0, 0, 0, 0, $newsize_x, $newsize_y, $size_x, $size_y);
					imagejpeg($new_image,$file_tmp,10);

							       move_uploaded_file ($file_tmp, $upload_path.$file_dest);  			      $db_connect = MYSQL_CONNECT ($db_server, $db_id, $db_pw);
                  $db_select_db = MYSQL_SELECT_DB ($db_database);
			      $db_insert = MYSQL_QUERY ("INSERT INTO $table2 (cat1, cat2, filename, date, submitter, status) values ('$cat1', '$cat2' , '$file_dest' , '$date' , '$submitter', 'neu')");
			      MYSQL_CLOSE();
			      echo "<strong>Bild ".$z++.":</strong><br>erfolgreich verkleinert und auf Server übertragen!<br>";
				  
		       }
 
Zuletzt bearbeitet:
Allowed memory size of 20971520 bytes exhausted
Was sagt uns das? Richtig! Die Datei ist für einen upload zu groß.

Zu sehen in der phpinfo.php
anzeige.jpg
 
Zuletzt bearbeitet:
Ich hab gerade nachgeschaut. Bei mir steht in der Php-info bei upload_max_filesize 20M. Das Bild, das ich hochladen wollte ist aber nur 1Mb groß.
An was kann das sonst noch liegen?
 
Ich glaube, diese Meldung bezieht sich nicht auf die erlaubte Grösse von Upload-Files, sondern auf den Arbeitsspeicher, welcher PHP zur Verfügung steht(php.ini=>memory_limit)

Bei der Verarbeitung des Bildes per GD-Lib wird mehr Speicher benötigt, als erlaubt.
Schau mal in dieses Thema ....dort findest du einen Link, welcher möglicherweise bei der Behebung des Problems weiterhilft.
 
Zurück