PHP: загрузка больших файлов не удалась

Я запутался... Кажется, я не могу загружать файлы в диапазоне 2 ГБ. Когда я пытаюсь использовать curl для отправки файла размером 1,92 ГБ на свой сайт (через API), он вообще ничего не сообщает, он просто пуст. Когда я отправляю файл размером 1 КБ, он сообщает, как и должен.

Когда я пытаюсь загрузить через форму загрузки, он зависает на полпути, около 33%. Хотя я не уверен, что завис только индикатор выполнения или фактическая загрузка файла была приостановлена. Я подозреваю, что завис только индикатор выполнения, потому что он все еще говорит, что данные отправляются, хотя индикатор выполнения зависает.

Мой php.ini (да, это также отражено в phpinfo):

register_globals = Off
magic_quotes_gpc = Off
post_max_size = 2047M
upload_max_filesize = 2047M
max_execution_time = 25200     ; Maximum execution time of each script, in seconds
max_input_time = 25200  ; Maximum amount of time each script may spend parsing request data
memory_limit = 2048M      ; Maximum amount of memory a script may consume (16MB)
short_open_tag = On 

Мой vps на самом деле не имеет в своем распоряжении 2 ГБ оперативной памяти, но действительно ли memory_limit нужно устанавливать так высоко?

Как мне это проверить? Я знаю, что файлы размером 400 МБ работают, я не тестировал ничего между 400 МБ и 1,92 ГБ.

Вам понадобится премиум-аккаунт для тестирования до 2 ГБ, поэтому вот тот, с которым вы можете играть:

Пользователь: testreferral

Проход: 1234

http://filefx.com

Я не понимаю, где эта проблема возникает.


person jiexi    schedule 02.11.2010    source источник
comment
Это может быть проблемой базовой файловой системы. Поищите на SO, я уверен, что это обсуждалось несколько раз   -  person Pekka    schedule 03.11.2010
comment
какие ключевые слова я должен включить в поиск?   -  person jiexi    schedule 03.11.2010
comment
linuxmafia.com/faq/VALinux-kb/2gb-filesize-limit. html для не-SO ссылки по этому вопросу   -  person Mark Baker    schedule 03.11.2010
comment
я почти уверен, что это не проблема с файловой системой, так как я могу без проблем создавать zip-файлы размером более 2 ГБ.   -  person jiexi    schedule 03.11.2010
comment
Нет ничего явно плохого. Проверьте, есть ли что-нибудь в вашем журнале ошибок или журнале ошибок php.   -  person Artefacto    schedule 03.11.2010
comment
что интересно, я могу загружать файлы размером 600 МБ, API сообщает об этом со страницей загрузки, НО файл фактически не отображается в папке загрузок.   -  person jiexi    schedule 03.11.2010
comment
Вы можете попробовать увеличить максимальную загрузку до ~ 2,25 ГБ, а затем посмотреть, сработает ли она. Вы всегда можете проверить, что он был ниже 2 ГБ в коде проверки, а также на стороне клиента с помощью javascript (чтобы они не отправили его, если он не будет работать... просто не полагайтесь на него).   -  person Thomas    schedule 03.11.2010
comment
Я только что протестировал файл размером 1,90 ГБ, и он загрузился совершенно нормально filefx.com/files/GsXG1288753040.html (я сгенерировал это, dd'ing из /dev/zero, так что это все нули).   -  person Thomas    schedule 03.11.2010


Ответы (2)


Проверить:

  1. Лимит памяти. Попробуйте загрузить файлы выше и ниже фактического предела памяти.
  2. Лимит времени. Разве ваши загрузки не занимают 7+ часов, не так ли?
  3. Эффективные настройки. Некоторые настройки могут быть переопределены настройками сервера/и т.д.
person Halil Özgür    schedule 03.11.2010