2012-02-22 42 views
0

我有一個使用PHP和本網站編寫的網站,我使用的是Andrew Valums' "Ajax Upload" JavaScript,它使用XHR在瀏覽器中上傳文件以支持它,併爲其他瀏覽器。當使用XHR時,我的PHP腳本確保stream_copy_to_stream($source, $dest)等於$_SERVER['CONTENT_LENGTH'](這是示例PHP腳本的樣子)。儘管當我執行這個操作時,我不確定這個檢查的原因,但我仍然把代碼留在了那裏。事實證明,用戶上傳文件的次數已經有幾次,而且這兩個值已經不同。我想知道是什麼原因造成的。我猜這是一個網絡超時,但這是唯一可能導致它的事情嗎?另外,有沒有時間$_SERVER['CONTENT_LENGTH']不會被設置?

謝謝!

回答

0
  1. 如果網絡連接中斷(例如,用戶導航離開,點擊「停止」,等等),你不會得到的所有數據,以及您的流長度會比Content-Length頭短。
  2. $_SERVER['CONTENT_LENGTH']未設置,如果沒有設置Content-Length標頭。這應該僅在Transfer-Encoding: chunked時發生。
+0

這很有道理。非常感謝你! – Nick 2012-02-22 21:25:50