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

Проверка размера загрузки перед загрузкой

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

Спасибо

4b9b3361

Ответ 1

Используйте метод HTTP HEAD, чтобы получить заголовок Content-Length:.

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

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

Ответ 3

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

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