Главная страница
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.039 c
14-1086113665
mfender
2004-06-01 22:14
2004.06.20
Собираюсь в Москву.


14-1086019222
praktika
2004-05-31 20:00
2004.06.20
! ПОМОГИ СТУДЕНТУ ПРОЙТИ ПРАКТИКУ !


1-1086603969
Алексей
2004-06-07 14:26
2004.06.20
Как сохранить в файл TListItem


14-1084105414
RealRascal
2004-05-09 16:23
2004.06.20
Баги с пиктограммками в XP


1-1086342787
Ruslan
2004-06-04 13:53
2004.06.20
Не могу очистить TreeView.