Главная страница
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.03 c
1-1086254684
TALLA
2004-06-03 13:24
2004.06.20
Переименование NodeName и Attributes в XML?


4-1084372310
Неуловимый Джо
2004-05-12 18:31
2004.06.20
Повторный запуск проги и передача ParamStr()


1-1086324347
sk[a]ner
2004-06-04 08:45
2004.06.20
Безье


6-1083057490
Veon
2004-04-27 13:18
2004.06.20
Подсчёт трафика


4-1084377283
Unknown user
2004-05-12 19:54
2004.06.20
Проблема с кареткой