Получить размер файла из многочастной формы загрузки заголовка Content-Length
Итак, я загружаю файл, а затем загружаю его... но Content-Length в заголовках загрузки не соответствует размеру файла. Я предполагаю, что есть некоторые другие данные, связанные с этим вычислением и передачей, но что именно? Как получить точный размер файла из Content-Length? Это вообще возможно?
Я знаю, что есть границы, и, возможно, некоторые другие вещи, но проверьте это:
5380216 - 5379906 = 310
"----WebKitFormBoundaryeoFyqD4zr6smwYDG".size
→ 38
Таким образом, размер границы 38... 310 имеет несколько ЖК-дисплеев 5, 10, 31... они не работают с 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'
}
ТЛ; др
Размер файла 5379906
Длина содержимого указывается как 5380216
Зачем?
2 ответа
Я думаю, что каждый раздел запроса 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
Все это будет учитываться в размере контента-длины.
РЕДАКТИРОВАТЬ
Просто понял, что я не ответил на твой вопрос. Не уверен, как вытащить размер файла из раздела файла запроса. Сожалею!
Полученные вами данные всегда больше, чем вы храните. Просто отсканируйте значение "bord er" для начала и конца файла.