Загрузка файлов PHP, будучи «захваченной» частичной загрузкой

У меня есть сайт, который получает 30-40-килограммовую загрузку фотографий в день, и теперь я вижу проблему с большей частотой. Эта проблема такова:

Наш сценарий загрузки получает (через $ _FILES ['name'] ['tmp_name']) файл (фото), который НЕ был загружен пользователем, и большая часть времени, когда полученный файл является «частичной» загрузкой.

Конечно, сначала я подумал, что это мой PHP-код, делающий простую ошибку, и я потратил несколько дней на это, чтобы убедиться, но после размещения чеков в коде я обнаружил, что файл, полученный через HTTP POST, загружается на PHP на самом деле является неправильным файлом. Поэтому проблема доходит до моего кода. Файл tmp (phpxxxx), полученный скриптом, иногда неверен, как будто он каким-то образом перезаписывается другим процессом и обычно перезаписывается файлом, который был частично загружен.

Кто-нибудь видел такую ​​проблему? Любая помощь приветствуется. Я обращаюсь к этому как к последнему средству после нескольких дней поиска / запроса других разработчиков PHP

Так что напомню:

  • Пользователь загружает фотографию
  • PHP-скрипт получает файл, который не был загружен пользователем (предварительный код, через $ _FILES в / var / tmp)
  • Обычно неправильный полученный файл является частичной загрузкой или сломанной загрузкой
  • Кажется, это происходит случайно и не все время

Related of "Загрузка файлов PHP, будучи «захваченной» частичной загрузкой"

Можете ли вы попробовать разные имена временного файла, чтобы избежать его перезаписи? Можете ли вы определить происхождение нового, неправильного и неполного файла?

Является ли это средой разработки? Возможно ли, что несколько пользователей одновременно загружают файлы?

Попробуйте свою программу с очень маленькими изображениями, чтобы проверить правильность SchizoDuckie о проблемах с файлами.

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

Проверьте разрешения на каталог, в котором хранится файл temp.

Прежде всего, проверьте версию PHP.

Во-вторых, проверьте лимиты загрузки файлов и POST_MAX_SIZE в php.ini

Возможно, просто кто-то пытается загрузить файл, который слишком велик 🙂

Встроенная обработка файлов PHP не поддерживает частичную загрузку.

Отключите KeepAlives и / или отправьте заголовок «Соединение: закрыть» после каждой загрузки.

Настройте свой веб-сервер для отправки заголовка «Разрешить диапазоны: нет».