Загрузка не работает правильно, если файл слишком большой

У меня есть приложение PHP, где я могу загружать файлы. Когда я загружаю большинство файлов и делаю print_r($_FILES) , я получаю что-то вроде этого:

 Array ( [import] => Array ( [name] => Array ( [excel_file] => COD MKTG 2.csv ) [type] => Array ( [excel_file] => application/vnd.ms-excel ) [tmp_name] => Array ( [excel_file] => /tmp/phpy8mEKn ) [error] => Array ( [excel_file] => 0 ) [size] => Array ( [excel_file] => 1584286 ) ) ) 

У меня есть другой файл CSV, который больше похож на 13 мегабайт, и когда я пытаюсь загрузить его, я получаю следующее:

 Array ( [import] => Array ( [name] => Array ( [excel_file] => COD MKTG.csv ) [type] => Array ( [excel_file] => ) [tmp_name] => Array ( [excel_file] => ) [error] => Array ( [excel_file] => 1 ) [size] => Array ( [excel_file] => 0 ) ) ) 

Я не ошибаюсь, говоря, что файл слишком большой. Я просто получаю $_FILES . У меня есть post_max_size в php.ini, установленном на 100 МБ. Почему это происходит?

Solutions Collecting From Web of "Загрузка не работает правильно, если файл слишком большой"

В соответствии с документами PHP код ошибки 1 – UPLOAD_ERR_INI_SIZE : «Загруженный файл превышает директиву upload_max_filesize в php.ini»

Вы должны убедиться, что все следующие переменные правильно установлены:

upload_max_filesize – максимальный размер любого отдельного файла при загрузке
max_file_uploads – общее количество файлов, разрешенных для загрузки
post_max_size – общая сумма всех данных POSTED (данные формы + файлы)
memory_limit – должно быть> post_max_size, чтобы позволить пространство для накладных расходов PHP +

И, кроме того, существуют ограничения на веб-сервер. Apache получил LimitRequestBody, который будет применяться задолго до того, как PHP когда-нибудь войдет в картину.

измените предел памяти, а memory_limit = 8M;

до 20?

и, возможно, время выполнения

max_execution_time

редактировать:

убедитесь, что это не время выполнения поиска …

если у вас действительно медленное подключение к Интернету, это может быть

max_input_time

это должно быть одно из них или что-то не так с вашим сценарием или вы не правильно настроили настройки

memory_limit

max_execution_time

max_input_time

Вы также можете попробовать установить эти значения в файле .htaccess в корневом каталоге

 php_value upload_max_filesize 128M php_value post_max_size 128M php_value max_execution_time 200 php_value max_input_time 200 

Насколько мне известно, у PHP возникают проблемы с большими файлами, когда речь идет о функциях файловой системы. 32-разрядный скомпилированный PHP имеет 2147483647 как PHP_INT_MAX, что означает, что файлы размером более ~ 2G не будут открываться, искать и т. Д. Это число больше в 64-битном скомпилированном PHP [около 4+ триллионов байтов – 8-байтовое целое число со знаком] ,

В этот самый момент я пытаюсь решить эту проблему [я пытаюсь интегрировать JumpLoader в мой проект CMS. Это делается, за исключением части, связанной с этой проблемой 2G опрокидывания – не может работать с файлами размером более 2G.], Поэтому, как только я получу решение на этом, вы поделитесь им.

Удачи на данный момент.