Привет, У меня есть следующий набор переменных ini в файле phpini.
max_execution_time 50000
memory_limit 40M
post_max_size 8M
Когда я пытаюсь сделать эскиз изображения, он дает мне следующую ошибку:
Неустранимая ошибка: Недостаточно памяти (выделено 30670848) (попытался выделить 14976 байт)
Размер изображения – 700 кб.
Может кто-нибудь мне помочь ?
Ваша проблема заключается не в том, что один вызов imagecreatefromjpeg (), а в том, что вы выделили ранее. В конце концов, распределение не выполняется с запросом памяти всего на ~ 14 КБ.
Возможно, вы создали изображения ранее в том же скрипте, не освобождая их память с imagedestroy (), или у вас другая проблема с памятью. В последнем случае вы можете использовать инструмент отладки (например, webgrind ), чтобы найти память.
Каково разрешение вашего изображения 700 КБ? На самом деле не имеет значения, насколько велика оригинальная .JPG. Если это очень «простой» образ, он может буквально составлять 10 000 х 10 000 пикселей. Когда он загружается / несжатый PHP, эти пиксели потребуют 10k x 10k x 3 = 286 мегабайт (10x квадратов раз 3 для каждого значения красного / зеленого / синего).
И, конечно же, вы говорите, что вы установили ограничение памяти на 40M, но вы исчерпали память всего на 29,25 мегабайта. Возможно, что в настройке есть переопределение, возможно, в файле .conf для веб-сайта определенного сайта или в .htaccess, который устанавливает нижний предел, чем 40M.