PHP POST загрузка файлов> 8.2M не удается - PullRequest
1 голос
/ 22 июня 2019

Я использую скрипт здесь от w3school для загрузки файлов на веб-сервер. Я использую Google Chrome, идущий на сервер Apache с php7.

Когда я загружаю файл с рабочего стола Windows, скрипт работает так, как объявлено, и файл загружается. Однако, когда я пытаюсь загрузить файл из любой другой папки, переменная $_FILES либо отсутствует, либо ее значения пусты ( На самом деле это проблема размера, см. Правку ниже ). Я не уверен, как решить эту проблему, поскольку devtools в chrome, похоже, не дают мне никакой информации о том, что он отправляет в этом сообщении POST.

Я предполагаю, что проблема на стороне клиента, так как кажется, что сервер не получает информацию от клиента.

EDIT

Мне известно, как искать заголовки для запросов, и ничего о файле, кроме его длины содержимого, не включено в заголовок. Нет разницы между работающими заголовками и заголовками, за исключением содержимого boundary, которое выглядит случайным, и заголовка content-length, который, очевидно, изменяется в зависимости от размера файла.

У меня была мысль, что это связано с размером файла, и это так. У меня есть папка с фотографиями разных размеров, и я сортировал и загружал все более крупные файлы, пока это не удалось. Он работал нормально до примерно 8 МБ файлов и дает сбой, когда их размер превышает 8 200 КБ.

Я проверил php.ini и установил максимальный размер загрузки 150M, так что это не INI-файл. Я также проверяю все журналы, и ничего, кроме запроса на публикацию, не появляется, когда я пытаюсь загрузить файл.

1 Ответ

1 голос
/ 22 июня 2019

Я смог найти ответ здесь: почему $ _FILES будет пустым при загрузке файлов в PHP .

Я не знал, что в файле php.ini была опция post_max_size, для которой было установлено значение 8M.Теперь, когда это установлено на 100M.Если вы превысите размер запроса POST , php не проанализирует информацию POST, что даст вам пустую переменную $ _ FILES .

...