Подтвердить что ты не робот

Получить размер файла из многостраничной формы Загрузка заголовка Content-Length

Итак, я загружаю файл, а затем загружаю его... но Content-Length в заголовках выгрузки не соответствует размеру файла. Я предполагаю, что есть некоторые другие данные, связанные с этим вычислением и переносом, но что именно? Как получить точный размер файла из Content-Length? Возможно ли это?

Я знаю, что есть границы и, возможно, некоторые другие вещи, но проверьте это:

5380216 - 5379906 = 310

"----WebKitFormBoundaryeoFyqD4zr6smwYDG".size
→ 38

Таким образом, размер границы 38... 310 имеет некоторые ЖК-дисплеи 5, 10, 31... они плохо работают с 38 в любом случае... Я потерялся!

Размеры файлов:

[email protected]  1 williamcotton  staff    5379906 Jul  2 12:02 testfile-downloaded.zip
[email protected]  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' 
}

ТЛ; дг

Размер файла: 5379906

Content-Length отображается как 5380216

почему?

4b9b3361

Ответ 1

Я думаю, что каждая часть запроса 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.

ИЗМЕНИТЬ

Только что понял, что я не ответил на ваш вопрос. Не знаете, как вытащить размер файла из раздела файла запроса. Извините!

Ответ 2

Полученные вами данные всегда больше вашего файла. Просто сканируйте значение "границы" для начала и окончания файла.

Ссылка: Как работает загрузка файла HTTP?