2012-02-22 10 views
0

私はPHPで書かれたウェブサイトを持っており、このウェブサイトにはAndrew Valums' "Ajax Upload" JavaScriptが使用されています。これはXHRを使ってそれをサポートするブラウザでファイルをアップロードし、 。 XHRを使用すると、私のPHPスクリプトはstream_copy_to_stream($source, $dest)$_SERVER['CONTENT_LENGTH']と等しくなるようにします(これはサンプルPHPスクリプトの仕組みです)。たとえ私がこれを実装したときにこのチェックの理由がわからないとしても、私はそのコードをとにかく残しました。ユーザーがファイルをアップロードし、その2つの値が異なっていることが数回確認されています。私はこれを引き起こす原因が不思議です。私はそれがネットワークタイムアウトだと思っていますが、これを引き起こす可能性があるのはこれだけですか?また、$_SERVER['CONTENT_LENGTH']が設定されない時間がありますか?

ありがとうございます!

答えて

0
  1. ネットワーク接続が(例えば、ユーザーが離れてナビゲートするなど、「停止」をクリック)中断された場合は、すべてのデータを取得することはありませんし、あなたのストリーム長はContent-Lengthヘッダよりも短くなります。
  2. $_SERVER['CONTENT_LENGTH']は、Content-Lengthヘッダーが設定されていない場合は設定されていません。これは、Transfer-Encoding: chunkedの場合にのみ発生します。
+0

これは意味があります。どうもありがとうございました! – Nick

関連する問題