$_FILES Empty — Рву на себе волосы

Если бы форма работала нормально (и работает до сих пор), но файлы большего размера просто не работают с пустым $_FILES.

Я могу загружать файлы размером 10 МБ, 60 МБ и даже 101 МБ, но файл, который я действительно хочу загрузить, имеет размер 120 МБ, и загрузка просто завершается сбоем с пустым $_FILES.

The php.ini are set:
file_uploads = On
post_max_size = 750M
upload_max_filesize = 500M
max_execution_time = 500
include_path = .:/usr/local/lib/php
auto_prepend_file = config.php

Но самый большой файл просто не работает. Я читал, что мой каталог /tmp может быть заполнен, но единственный каталог /tmp находится в том же каталоге, что и public_html, и в этом каталоге мало что есть, кроме awstats и webalizer.

Любая помощь?


person rmccallum    schedule 26.10.2012    source источник
comment
Если вы сделаете phpinfo(), это определенно будет использоваться php.ini? (Дальний выстрел, я знаю)   -  person Martin Lyne    schedule 26.10.2012
comment
Ребята, вы вопрос читали? Я думаю, он уже знает о upload_max_filesize...   -  person Simone    schedule 26.10.2012
comment
@simone: серьезно? Где это сказано?   -  person JvdBerg    schedule 26.10.2012
comment
Да, я бы сделал phpinfo(), чтобы убедиться, что файл php.ini используется и что значения установлены правильно. И у вас есть доступ к логам? Вы получаете какие-либо ошибки?   -  person Pitchinnate    schedule 26.10.2012
comment
Подсказка 1: max_input_time - см. наш хороший сайт: stackoverflow.com/search?q=%5Bphp%5D+max_input_time --- Совет 2: регистрируйте ошибки. Загляните в журнал ошибок PHP. Just Fails не является правильным описанием ошибки, если вам нужна помощь. Совет 3: Другие расширения PHP могут мешать вашей конфигурации. Например. средства защиты. Вы узнаете с помощью регистрации ошибок PHP. Подсказка 4: проверьте журнал ошибок сервера на случай, если ваш сервер завершит запрос. Тогда это не связано с PHP.   -  person hakre    schedule 26.10.2012
comment
не могли бы вы опубликовать раздел Server API из вашего phpinfo   -  person alan978    schedule 26.10.2012


Ответы (4)


проверьте эту настройку max_input_time . он ограничивает время, в течение которого скрипт может анализировать данные.

person Nikola    schedule 26.10.2012
comment
Сделаю это сейчас - нет! Проверил мою phpinfo, чтобы убедиться, что она принята. Установите его на max_input_time = 500 - person rmccallum; 26.10.2012
comment
800М. Эти значения просто огромны, чтобы убедиться, что проблем не будет. Я могу уменьшить их после того, как он работает. - person rmccallum; 26.10.2012

Кто-то говорит, что ваш memory_limit тоже нужно поднять.

Оно должно быть выше upload_max_filesize.

Если вы используете сухосин, есть также несколько вариантов: suhosin.memory_limit, suhosin.post.max_value_length

Кроме того, есть опция max_input_time.

Также могут быть некоторые прокси, такие как nginx или лак, которые предотвращают загрузку таких больших файлов.

Наконец, в Apache есть одна директива: LimitRequestBody

И для mod_fastcgi: FcgidMaxRequestLen, FcgidConnectTimeout

Вы также можете попробовать отслеживать загрузку с помощью APC и некоторого индикатора выполнения AJAX: http://www.phpriot.com/articles/php-ajax-file-uploads/3

person Cybot    schedule 26.10.2012

Используете ли вы скрытое поле «MAX_FILE_SIZE» в HTML-форме загрузки входного файла?

Если используется, пожалуйста, проверьте эту проблему.

http://www.php.net/manual/en/features.file-upload.php#74692

person fortune    schedule 26.10.2012

Установите их в свой php.ini:

upload_max_filesize = 10M
post_max_size = 10M

и проверить

memory_limit  

быть выше, чем post_max_size

person Lakatos Gyula    schedule 26.10.2012
comment
@rmccallum Фу, извините, отредактировал. Я как-то пропустил эти 2 строчки. Попробуйте увеличить лимит памяти скрипта. - person Lakatos Gyula; 26.10.2012