Загрузка файла PHP - обработка памяти на CGI - PullRequest
1 голос
/ 22 февраля 2011

Мне интересно, как PHP обрабатывает загрузку файлов.Я прочитал загрузка файла будет разбита на куски и будет собрана после завершения загрузки.Есть ли подтверждение этого факта?Это поможет понять обработку и настройки для загрузки файла.Обработка mod_php или CGI одинакова?mod_php более тесно связан с Apache.CGI должен прочитать поток и затем сделать его магическим.

Как память задействована в этом процессе.

Это правильно?

  1. Apache обрабатывает HTTP-запрос
  2. Apache вызывает PHP через CGI и передает данные (pipe)
  3. PHP разбивает ввод на куски определенного размера, чтобы не достичь предела памяти
  4. Конец потока найден
  5. PHP собирает разделенные файлы в один файл и удаляет разделенные файлы
  6. Информация о загрузке файла будет сохранена в $ _FILES

1 Ответ

1 голос
/ 23 февраля 2011

PHP читает файл по частям, но не записывает их в отдельные файлы, а затем рекомбинирует, продолжает записывать их в тот же временный файл, который вы получаете в $ _FILES.

То же самое для mod_php и CGI.

Вот ответственный код: http://svn.php.net/viewvc/php/php-src/branches/PHP_5_3/main/rfc1867.c?revision=307583&view=markup#l1065

...