Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2013, 16:45   #1
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию Размер файла в Интернете

Дана процедура:
Код:
procedure InternetZagruzitFajl(URL, f: string);
const MaxBuffer=65536;
var H1,H2:pointer;
    H3:integer;
    Buffer:array[1..MaxBuffer] of char;
    Count:cardinal;
begin
   H1:=InternetOpen('',0,nil,nil,0);
   try
   H2:=InternetOpenURL(H1,pChar(URL),nil,0,0,0);
   If H2=nil then
   begin
      InternetCloseHandle(H1);
      Exit;
   end;
   try
   H3:=FileCreate(f);
   Count:=0;
   try
   Repeat
      InternetReadFile(H2,@Buffer,SizeOf(Buffer),Count);
      Count:=FileWrite(H3,Buffer,Count);
   Until Count<=0;
   finally
      FileClose(H3);
   end;
   finally
      InternetCloseHandle(H2);
   end;
   finally
      InternetCloseHandle(H1);
   end;
end;
Как узнать размер загружаемого файла (есть ли процедуры/функции, которые могут определить объем файла)? Через переменную Count можно узнать сколько загружено. Подобное имеется в tSearchRec.Size (но это для файлов, хранящихся на компьютере)?
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 20.10.2013, 22:48   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

когда узнать?
eval вне форума Ответить с цитированием
Старый 20.10.2013, 23:12   #3
cotseec
Пользователь
 
Регистрация: 02.05.2012
Сообщений: 45
По умолчанию

например, так Как узнать размер файла в интернете?
(для работы функции необходима ссылка непосредственно на файл)
Skype: cotseec
ICQ: 330-171-495
cotseec вне форума Ответить с цитированием
Старый 20.10.2013, 23:29   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Спаси и сохрани от такого кода =)

Все что надо, это HEAD запрос к http://supersite.com/megafile.lol
В ответ придет заголовок Content-Length, который указывает размер файла в байтах, на сервере.
Человек_Борща вне форума Ответить с цитированием
Старый 21.10.2013, 14:28   #5
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Напишите процедуру (или функцию) определения размера файлов в Интернете
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 21.10.2013, 15:53   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Вот тебе пример, а функцию сам напишешь.
Код:
var
  http:THTTPSendEx;
  iSize:Integer;
begin
 http:=THttpSendEx.Create;
 try
  if HTTP.HEAD('http://file.bin') then
  begin
    http.Headers.NameValueSeparator:=':';
    iSize:=StrToIntDef(http.Headers.Values['Content-length'],-1);
  end;
 finally
  http.Free;
 end;
end;
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить название файла в интернете? Raf-9600 Работа с сетью в Delphi 10 07.04.2013 01:24
размер файла iliili Общие вопросы Delphi 4 22.06.2011 13:28
Размер файла paravoz1k Общие вопросы Delphi 2 13.02.2011 21:52
сравнение размера файла в интернете с размером файла на компьютере Excellion Общие вопросы Delphi 19 09.01.2011 17:33
Размер файла flug Общие вопросы Delphi 2 29.10.2009 13:43