2013-03-21 7 views
0

В настоящее время я использую фреймворк PHP CodeIgniter и имею форму загрузки изображения. Когда я загружаю небольшие файлы, скрипт запускается без особых проблем, но когда я выбираю файл, который позволяет загрузить 3 МБ, сценарий не запускается, переходит на страницу и говорит, что «Страница не загружается». Я проверил журнал php и журнал Apache. PHP-журнал дал эту ошибку.PHP фатальная ошибка при загрузке больших файлов

PHP Fatal error: 
Allowed memory size of 33554432 bytes exhausted 
(tried to allocate 20736 bytes) in 
/Users/Desktop/localhost/system/libraries/Image_lib.php on line 1155 

Я предполагаю, что я должен изменить некоторые настройки из конфигурационного файла CodeIgniter, является ли это верно предположение?

Это мой текущий php.ini для PHP, который, я думаю, не вызывает сбой.

; Maximum allowed size for uploaded files. 
upload_max_filesize = 32M 

; Must be greater than or equal to 
upload_max_filesize post_max_size = 32M 

max_execution_time = 30  ; Maximum execution time of each script, in seconds 
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data 
memory_limit = 32M  ; Maximum amount of memory a script may consume (8MB) 

Но страница не загружается, затем сбой. Он не обрабатывает право, когда я нажимаю кнопку «Отправить».

Любые советы приветствуются, заранее.

EDIT:

Теперь я получаю эту ошибку после замены themt уплотнительное 64M, наряду с memory_limit

PHP Fatal error: Allowed memory size of 67108864 bytes 
exhausted (tried to allocate 20736 bytes) in 
/Users/Desktop/localhost/system/libraries/Image_lib.php on line 1155 

ответ

3

Оба этих директив подведет, так как размер файла> 32 Мб (как это не менее 33554432 байт).

; Maximum allowed size for uploaded files. 
upload_max_filesize = 32M 

; Must be greater than or equal to 
upload_max_filesize post_max_size = 32M 

Кроме того, вам нужно будет увеличить memory_limit.

+0

Нужно ли перезагружать серверы? (Я нахожусь на маме, потому что, когда я меняю его и перезагружаю, он все еще говорит 32 МБ в журнале) – Grigor

+0

Теперь я получаю эту ошибку. PHP Неустранимая ошибка: допустимый размер памяти 67108864 байт исчерпан (пытался выделить 20736 байт) в /Users/Desktop/localhost/system/libraries/Image_lib.php в строке 1155 – Grigor

+0

Это означает, что размер файла по-прежнему слишком велик для установленных пределов. Насколько велик файл? Пределы должны быть как минимум размером файла. И да, вам нужно перезапустить apache для изменений в работе. – stormdrain

1

У вас есть предел памяти 32М и попытался выделить больше памяти, так что ваши сценарий не выполнен. Вероятно, у вас есть большие изображения (image_gd хранит растровое изображение в памяти, которое потребляет много памяти). Что вы можете сделать, это

  • Использование image_magick вместо Gd
  • Повысьте memory_limit (ie64M или более)
+0

image_magick не может быть и речи, так как он использует фреймворк и переписывает фреймворк в конечном итоге в беспорядке ... – ITroubs

Смежные вопросы