PHP: stream_copy_to_stream! = $ _SERVER ['CONTENT_LENGTH'] - PullRequest
0 голосов
/ 22 февраля 2012

У меня есть веб-сайт, написанный на PHP, и на этом веб-сайте я использую JavaScript Ajax Upload от Andrew Valums , который использует XHR для загрузки файлов в браузерах, которые его поддерживают, и скрытый iframe для других.браузеры.Когда XHR используется, мой PHP-скрипт гарантирует, что stream_copy_to_stream($source, $dest) равен $_SERVER['CONTENT_LENGTH'] (так был пример PHP-скрипта).Несмотря на то, что я не был уверен в причинах этой проверки, когда реализовал это, я все равно оставил код там.Оказывается, было несколько раз, когда пользователи загружали файлы, и эти два значения были разными.Мне интересно, что вызывает это.Я предполагаю, что это тайм-аут сети, но это единственное, что может вызвать его?Кроме того, есть ли время, когда $_SERVER['CONTENT_LENGTH'] не будет установлено?

Спасибо!

1 Ответ

0 голосов
/ 22 февраля 2012
  1. Если сетевое соединение прерывается (например, пользователь уходит, нажимает «стоп» и т. Д.), Вы не получите все данные, а длина вашего потока будет короче заголовка Content-Length.
  2. $_SERVER['CONTENT_LENGTH'] сбрасывается, если не установлен заголовок Content-Length. Это должно происходить только тогда, когда Transfer-Encoding: chunked.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...