Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.035 c
14-1085960995
Заранее спасибо
2004-05-31 03:49
2004.06.20
Заранее спасибо


1-1086373148
lelik
2004-06-04 22:19
2004.06.20
зашитие файла


14-1085944450
Тимур
2004-05-30 23:14
2004.06.20
Game Shark


1-1086291679
neteditor
2004-06-03 23:41
2004.06.20
Variant Array of Variant


3-1085501585
gfr
2004-05-25 20:13
2004.06.20
умножение времени на тариф за переговоры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский