Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

Как узнать размер файла перед скачиванием   Найти похожие ветки 

 
Kme   (2004-04-27 22:48) [0]

Добрый вечер! Обращаюсь к Вам с таким вопросом. Как узнать размер файла перед скачиванием по HTTP? В интернете везде лежит функция

GetUrlInfo(HTTP_QUERY_CONTENT_LENGTH, "http://some.com/some.zip");

function GetUrlInfo(const dwInfoLevel: DWORD; const FileURL: string):
string;
var
 hSession, hFile: hInternet;
 dwBuffer: Pointer;
 dwBufferLen, dwIndex: DWORD;
begin
 Result := "";
 hSession := InternetOpen("STEROID Download",
                          INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 if Assigned(hSession) then begin
   hFile := InternetOpenURL(hSession, PChar(FileURL), nil, 0,
                            INTERNET_FLAG_RELOAD, 0);
   dwIndex  := 0;
   dwBufferLen := 20;
   if HttpQueryInfo(hFile, dwInfoLevel, @dwBuffer, dwBufferLen, dwIndex)
     then Result := PChar(@dwBuffer);
   if Assigned(hFile) then InternetCloseHandle(hFile);
   InternetCloseHandle(hsession);
 end;


Но она выдает неправильные значения. Очень не хочется использовать компоненты FastNet! Необходимо обойтись без них!


 
SammIk ©   (2004-04-28 02:41) [1]

TClientSocket
Конектишься, кидаешь гет запрос, тебе возвращают что-то
типа:
HTTP/1.0 200 OK
Date: Tue, 27 Apr 2004 22:39:16 GMT
Server: Apache/1.3.27 (Unix) FrontPage/5.0.2.2623 PHP/4.3.2 mod_gzip/1.3.19.1a mod_accounting/1.0 mod_fastcgi/2.4.0 mod_ssl/2.8.14 OpenSSL/0.9.7b rus/PL30.17
Content-Length: 32794<<<<<Размер в баитах
Connection: close
Content-Type: text/html; charset=windows-1251


 
BiN ©   (2004-04-28 09:19) [2]

>>SammIk

Сдается мне, что работа HttpQueryInfo сводится именно к такому  get-запросу

>>Kme   (27.04.04 22:48)

Странно, что у тебя AV не выскакивает.

Замени  dwBuffer: Pointer; на  
dwBuffer: array [0..20] of char;
и все будет работать.


 
VMcL ©   (2004-04-28 10:45) [3]

>>SammIk ©  (28.04.04 02:41) [1]

ИМХО, сначала следует послать запрос HEAD.


 
Kme   (2004-04-28 22:06) [4]

To BiN: Огромное спасибо! Все заработало!



Страницы: 1 вся ветка

Текущий архив: 2004.06.20;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.031 c
3-1085569663
студентМАИ
2004-05-26 15:07
2004.06.20
Idapi.cfg и список алиасов


14-1086333700
Baks
2004-06-04 11:21
2004.06.20
Из рубрики Знаменательная математика2


1-1086265785
han
2004-06-03 16:29
2004.06.20
Variant


14-1086197617
Rouse_
2004-06-02 21:33
2004.06.20
Восстановление убитого физически жесткого диска...


3-1085741047
avgur
2004-05-28 14:44
2004.06.20
Help my!!!!