13

そのため、ファイルをアップロードしてからダウンロードしています...しかし、アップロードヘッダーのContent-Lengthがファイルサイズと一致していません。この計算と転送に関連する他のデータがあると思いますが、正確には何ですか?Content-Lengthから正確なファイルサイズを取得するにはどうすればよいですか?それも可能ですか?

私は境界があることを知っています、そして多分他のいくつかのものがあります、しかしそれをチェックしてください:

5380216 - 5379906 = 310

"----WebKitFormBoundaryeoFyqD4zr6smwYDG".size
→ 38

したがって、境界サイズは38です... 310には5、10、31のLCDがいくつかあります...それらは38ではうまく機能しません...私は迷子になっています!

ファイルサイズ:

-rw-r--r--@  1 williamcotton  staff    5379906 Jul  2 12:02 testfile-downloaded.zip
-rw-r--r--@  1 williamcotton  staff    5379906 Jun  8 14:23 testfile-uploaded.zip

HTTPヘッダー

{ 
  host: 'localhost:8887',
  connection: 'keep-alive',
  'content-length': '5380217',
  'cache-control': 'max-age=0',
  origin: 'http://localhost:8887',
  'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1193.0 Safari/537.1',
  'content-type': 'multipart/form-data; boundary=----WebKitFormBoundaryeoFyqD4zr6smwYDG',
  accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  referer: 'http://localhost:8887/',
  'accept-encoding': 'gzip,deflate,sdch',
  'accept-language': 'en-US,en;q=0.8',
  'accept-charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3' 
}

tl; dr

ファイルサイズは5379906です

Content-Lengthは5380216として報告されます

なぜ?

4

2 に答える 2

7

multipart/form-data リクエストの各セクションは、メインの Content-Length ヘッダー全体のサイズにカウントされると思います。

これを参照として見つけました: http://chxo.com/be2/20050724_93bf.html

したがって、おそらくヘッダーの後に、次のようになる可能性があります。

----WebKitFormBoundaryeoFyqD4zr6smwYDG

Content-Disposition: form-data; name="file"; filename="testfile-downloaded.zip"; size=<file size could be here>
Content-Length: <file size could also be here>
<some other content headers>

<file data>

----WebKitFormBoundaryeoFyqD4zr6smwYDG

これらすべてが Content-Length サイズにカウントされます。

編集

質問に答えていないことに今気づきました。リクエストのファイル セクションからファイル サイズを取得する方法がわかりません。ごめん!

于 2012-07-03T18:58:12.450 に答える