Как узнать размер файла, скачиваемого с Интернета?
От: eugene83 Россия  
Дата: 19.10.04 13:50
Оценка:
Пользуюсь функциями:
InternetOpen
InternetOpenUrl
InternetReadFile

Хочу создать ProgressBar для закачки файла.
Как узнать размер скачиваемого файла?

Заранее благодарю.
Re: Как узнать размер файла, скачиваемого с Интернета?
От: koronator  
Дата: 19.10.04 14:11
Оценка:
HttpOpenRequest
HttpSendRequest
HttpQueryInfo

E>Пользуюсь функциями:

E>InternetOpen
E>InternetOpenUrl
E>InternetReadFile

E>Хочу создать ProgressBar для закачки файла.

E>Как узнать размер скачиваемого файла?
Re[2]: Как узнать размер файла, скачиваемого с Интернета?
От: eugene83 Россия  
Дата: 19.10.04 14:39
Оценка:
Здравствуйте, koronator, Вы писали:

K>HttpOpenRequest

K>HttpSendRequest
K>HttpQueryInfo

А нельзя ли по-подробнее про HttpQueryInfo?
Желательно немного кода...

Насколько я понял HttpQueryInfo можно использовать с InternetOpenUrl(не используя HttpOpenRequest и HttpSendRequest).
Re[3]: Как узнать размер файла, скачиваемого с Интернета?
От: eugene83 Россия  
Дата: 19.10.04 15:49
Оценка:
Здравствуйте, eugene83, Вы писали:

E>Здравствуйте, koronator, Вы писали:


K>>HttpOpenRequest

K>>HttpSendRequest
K>>HttpQueryInfo

E>А нельзя ли по-подробнее про HttpQueryInfo?

E>Желательно немного кода...

E>Насколько я понял HttpQueryInfo можно использовать с InternetOpenUrl(не используя HttpOpenRequest и HttpSendRequest).




UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);

dwLength := 0;
dwBuffSize := sizeof(dwLength); // все 3 DWORD
dwIndex := 0;

bInfo := HttpQueryInfo(UrlHandle, HTTP_QUERY_CONTENT_LENGTH,
@dwLength, dwBuffSize, dwIndex);



Почему bInfo = False , а GetLastErr возвращает 122
Что не так?
Re[4]: Как узнать размер файла, скачиваемого с Интернета?
От: koronator  
Дата: 19.10.04 20:05
Оценка:
Лучше в такой последовательности:

InternetOpen
InternetConnect
HttpOpenRequest
HttpSendRequest
HttpQueryInfo

Вообще-то пример использования HttpQueryInfo есть в MSDN.
Ссылку не дам — сделай поиск — сразу найдешь.
Re[4]: Как узнать размер файла, скачиваемого с Интернета?
От: Michael Chelnokov Украина  
Дата: 21.10.04 11:09
Оценка:
Здравствуйте, eugene83, Вы писали:

E> bInfo := HttpQueryInfo(UrlHandle, HTTP_QUERY_CONTENT_LENGTH,

E> @dwLength, dwBuffSize, dwIndex);

HTTP_QUERY_CONTENT_LENGTH|HTTP_QUERY_FLAG_NUMBER

E> Что не так?


Оно в текстовом виде пытается вернуть.
Re[3]: Как узнать размер файла, скачиваемого с Интернета?
От: Michael Chelnokov Украина  
Дата: 21.10.04 11:13
Оценка:
Здравствуйте, eugene83, Вы писали:

E>А нельзя ли по-подробнее про HttpQueryInfo?


Между прочим, не рассчитывайте что она будет работать всегда. Она всего лишь возвращает ту информацию, которую web-сервер соизволил включить в заголовок ответа. Поле Content-Length не является обязательным, поэтому может не присутствовать.
Re[5]: Как узнать размер файла, скачиваемого с Интернета?
От: eugene83 Россия  
Дата: 21.10.04 13:34
Оценка:
Здравствуйте, Michael Chelnokov, Вы писали:

MC>Здравствуйте, eugene83, Вы писали:


E>> bInfo := HttpQueryInfo(UrlHandle, HTTP_QUERY_CONTENT_LENGTH,

E>> @dwLength, dwBuffSize, dwIndex);

MC>HTTP_QUERY_CONTENT_LENGTH|HTTP_QUERY_FLAG_NUMBER


E>> Что не так?


MC>Оно в текстовом виде пытается вернуть.


Спасибо! Всё заработало.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.