Проверка размера загрузки перед загрузкой - PullRequest
16 голосов
/ 18 марта 2009

Мне нужен какой-то способ проверить размер загрузки без необходимости загрузки всего файла. Я использую C # и System.Net.WebClient для загрузки. Проверка должна выполняться в веб-службе asp.net.

Спасибо

Ответы [ 3 ]

17 голосов
/ 18 марта 2009

Используйте HTTP-метод HEAD для извлечения Content-Length: header.

HEAD / HTTP/1.1
Host: www.example.com

HTTP/1.1 200 OK
Date: Wed, 18 Mar 2009 11:21:51 GMT
Server: Apache/2.2.3 (CentOS)
Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
ETag: "b80f4-1b6-80bfd280"
Accept-Ranges: bytes
Content-Length: 438 
Connection: close
Content-Type: text/html; charset=UTF-8
2 голосов
/ 18 марта 2009

Сделайте запрос HEAD (а не GET или POST), чтобы просто получить заголовки ответа, он должен включать заголовок длины содержимого с необходимой вам информацией.

0 голосов
/ 23 марта 2009

Вы также можете использовать заголовок HTTP RANGE, чтобы загрузить только то, что вам нужно.

Было бы очень просто создать HttpRangeStream, который поддерживает поиск и чтение на удаленном HTTP-ресурсе, если удаленный сервер HTTP 1.1 и правильно поддерживает заголовки RANGE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...