У меня есть несколько изображений в базе данных mysql, которые хранятся в формате BLOB.
Максимальный размер файла изображений составляет 5 МБ.
Я пытаюсь создать миниатюры изображений, используя php GD.
Я использую следующий сценарий:
include 'models/connectdb.php';
// ------ starting up ------ //
$directory = 'views/images/generated/events/xs/';
$table = 'events';
$dimension_x = 50;
$dimension_y = 50;
// ------- proccess ------- //
//$query = "ALTER TABLE $table ADD thumb0 VARCHAR(100);";
//$result = mysql_query($query) or die(mysql_error());
$query = "SELECT * FROM $table;";
$result = mysql_query( $query ) or die(mysql_error());
while( $row = mysql_fetch_array( $result ) ) {
$id = $row['id'];
$uploaded_image = base64_decode( $row['image'] );
$uploaded_image = imagecreatefromstring( $uploaded_image );
$uploaded_x = imagesx($uploaded_image);
$uploaded_y = imagesy($uploaded_image);
do{
$filename = random_32();
$filename = $directory.$filename.'.jpg';
} while( file_exists($filename) );
$thumb = imagecreatetruecolor( $dimension_x , $dimension_y );
imagecopyresampled( $thumb , $uploaded_image , 0 , 0 , 0 , 0 , $dimension_x , $dimension_y , $uploaded_x, $uploaded_y);
imagedestroy( $uploaded_image ); // I also tried unset( $uploaded_image );
imagejpeg( $thumb , $filename , 90);
$query = "UPDATE $table SET image_xs = '$filename' WHERE id = $id LIMIT 1;";
mysql_query($query) or die(mysql_error());
echo "ran for one , ";
}
echo "it all ran";
function random_32() { // this function generates a random filename
$filename = rand( 100000000000000000 , 999999999999999999 );
$filename = md5( $filename );
return $filename;
}
Я получаю следующее:
ran for one ,
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 14032 bytes) in /home/leagu11/public_html/nightscene.gr/create_thumbs_people.php on line 21
Это означает, что мой сценарий выполняется для одного изображения и умирает, прежде чем будет запущен дляследующий.
Я думаю, что я делаю что-то не так с удалением / уничтожением моих данных после каждого выполнения цикла.
Есть идеи?