У меня есть следующие строки кода в начале функции:PHP из памяти, но почему?
$src_img=imagecreatefromjpeg($name);
$name
содержит полный путь на сервере к не-доступной публично папку, содержащую файл, который является 4.4MB JPG.
Обычно, когда эта проблема возникла, PHP нуждается в большем количестве памяти, чем выделено для открытия сжатого изображения, и выдача команды ini_set
для поднятия члена на 128 МБ решает проблему. Однако в этом случае это не так. Я пытался повысить до 256, 512 и 1024Мб и до сих пор он возвращается с ошибкой:
Fatal error: Allowed memory size of 262144 bytes exhausted (tried to allocate 17152 bytes) in /imgprocess.php on line 83.
Я даже попытался с помощью (! Контрабандные) -1, чтобы позволить неограниченную память, просто чтобы увидеть, если что-то заставлял его подниматься высоко, но все равно не идти.
Я пробовал другой файл изображения, если он был плохим JPG, все равно не пошел.
Как это можно решить?
EDIT: Я хотел бы добавить, что PHP не находится в безопасном режиме
Из интереса, какой размер изображения (изображения * размеры *, которые будут иметь гораздо лучшее отношение к несжатому размеру в памяти, чем размер сжатого с потерями JPEG). –
@Matt: его 4288x2848 на 72dpi - Photoshop сообщает о нем как 34.9MB – TIW
'Разрешенный размер памяти 262144 байта'-то там что-то не так. Как и где вы устанавливаете ограничение памяти? –