Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

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

Delphi , Интернет и Сети , Файлы и Интернет

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

Приходит юзер к провайдерам и говорит.
- У Вас маршрут на Москву не работает.
- А откуда Вы знаете?...


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;
end;

Код-снippet на языке Delphi! Функция GetUrlInfo предназначена для извлечения информации о URL, в частности, размера файла (контентная длина). Вот что она делает:

  1. Она открывает сессию Интернета с помощью InternetOpen.
  2. Затем она открывает соединение по URL с помощью InternetOpenURL, указывая URL (http://some.com/some.zip) и различные флаги.
  3. Функция затем вызывает HttpQueryInfo для запроса информации о URL, передавая уровень информационного уровня (dwInfoLevel = HTTP_QUERY_CONTENT_LENGTH) и другие параметры.
  4. Если запрос успешен, она извлекает контентную длину (в байтах) из указателя dwBuffer и присваивает ее переменной Result.
  5. Наконец, она закрывает файловый обработчик и сессию Интернета с помощью InternetCloseHandle.

Чтобы использовать эту функцию, вам нужно просто вызвать ее с желаемым URL и информационным уровнем:

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

Это вернет размер файла в байтах в виде строки.

Обратите внимание, что это код quite old (около 2003-2005 года) и может не работать с современными версиями Delphi или новыми операционными системами. Вам может потребоваться обновить его для использования более recent Internet API или библиотек.

Перед скачиванием файла можно узнать его размер с помощью функции HttpQueryInfo, которая возвращает информацию о файле, включая его длину.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Файлы и Интернет ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 05:48:26/0.0032579898834229/0