Форум: "Сети";
Текущий архив: 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.031 c