• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Как Узнать Размер Файла В Интернете?

Sascha Оффлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,562
Баллы
155
Как узнать размер файла в Интернете?
Код:
uses
  ..., WinInet;
(* Функция возвращает размер файла в байтах *)
function GetUrlSizeInByte( const URL: string ): integer;
var
  hSession, hFile: hInternet;
  dwBuffer: array[1..20] of char;
  dwBufferLen, dwIndex: DWORD;
begin
   Result := 0;
   hSession := InternetOpen( 'GetUrlSize', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil ,0 );
   if Assigned( hSession ) then
   begin
      hFile := InternetOpenURL( hSession, PChar( URL ), nil, 0, INTERNET_FLAG_RELOAD, 0 );
      dwIndex := 0;
      dwBufferLen := 20;
      if HttpQueryInfo( hFile, HTTP_QUERY_CONTENT_LENGTH, @dwBuffer, dwBufferLen, dwIndex ) then
         Result := StrToInt( StrPas( @dwBuffer ) );
      if Assigned( hFile ) then
         InternetCloseHandle( hFile );
      InternetCloseHandle( hSession );
   end;
end;
Способ второй

Код:
uses
  ..., WinInet;
function GetHttpFileSize( const URL: string ): Int64;
var
  hSession, hRequest: Pointer;
  lpBuf: array[0..30] of Char;
  dwBufLen: DWORD;
begin
   hSession := InternetOpen( nil, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0 );
   hRequest := InternetOpenUrl( hSession, PChar( URL ), nil, 0, 0, 0 );
   dwBufLen := SizeOf( lpBuf );
   if not HttpQueryInfo( hRequest, HTTP_QUERY_CONTENT_LENGTH, @lpBuf, dwBufLen, PDWORD( nil )^ ) then
      Result := -1
   else
      Result := StrToInt64Def( lpBuf, -1 );
   InternetCloseHandle( hRequest );
   InternetCloseHandle( hSession );
end;
 
Вверх Снизу