php не загружает большие файлы

158
15 декабря 2018, 08:30

Мне необходимо загружать файлы с размером ~2гб. На данный момент чтобы я не делал, больше 100мб загрузить не могу. Указывал настройки php.ini на локалке, на хостинге, на виртуальном сервере. Нигде не работает.

Настройки php.ini:

file_uploads = On
max_execution_time = 7200
max_input_time = 7200
memory_limit = 128M
upload_max_filesize = 2047M
post_max_size = 2047M

Указываю set_time_limit(0);, но это так же не исправляет ситуацию.

На локалке сразу выдает ERR_CONNECTION_ABORTED.

На виртуально сервере, то пытается грузить то нет, в итоге выдает ERR_CONNECTION_RESET.

EDIT: При загрузке на виртуальном сервере, увидел строку снизу, где браузер указывает кол-во процентов загрузки. Постоянно доходит до 38% и сбрасывается (конечно зависимо от размера файла)

EDIT2: Методом вычисления понял, что на виртуальном сервере принимает файлы не больше чем ~343мб

Answer 1

Все заработало когда указал:

В httpd.conf:

Timeout 7200

В nginx.conf:

client_max_body_size 2047m;

P.S. Регулируя client_max_body_size в nginx.conf и upload_max_filesize с post_max_size в php.ini, можно загружать файлы какие в разы превышают размер оперативной памяти. При этом не обязательно memory_limit в php.ini указывать такого же размера.

Answer 2

Читайте документацию внимательнее:

http://php.net/manual/ru/ini.core.php#ini.upload-max-filesize

Устанавливает максимально допустимый размер данных, отправляемых методом POST. Это значение также влияет на загрузку файлов. Для загрузки больших файлов это значение должно быть больше значения директивы upload_max_filesize. В сущности, memory_limit должна быть больше чем post_max_size.

В .htaccess:

php_flag post_max_size 1G
php_flag memory_limit 2G
php_flag upload_max_filesize 1G

PHP спокойно скушал полуторагиговое видео, код примерно такой:

$source = $file_info['tempname'];
$destination = self::getRealStoragePath($file_info) . '/' . $file_info['internal_name'];
$success = move_uploaded_file($source, $destination);
return $success ? $file_info : NULL;
READ ALSO
загрузка фото пользователя laravel

загрузка фото пользователя laravel

как обработать загрузку фото профиля пользователя

160
Отправка аттача с формы Tilda на почту

Отправка аттача с формы Tilda на почту

Есть форма на тильде, ссылка на форму, к ней надо подсоединить свой скрипт phpСкрипт пишу при помощи phpmail(желание заказчика)

319
Вывод названия таксономии WordPress

Вывод названия таксономии WordPress

Есть сайт на WordPressВ нём присутствует таксономия location

163
авторизация на сайте cUrl

авторизация на сайте cUrl

есть корпоративный сервис, хочу к нему подцепиться для дальнейшего парсинга с помощью cUrlв Form Data отправляются следующие значения:

123