ОБСУЖДЕНИЕ

Delphi-Загрузка файлов с интернет сервера

4 ответов 17,1 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Статус
Закрыто для дальнейших ответов.
Автор темы
aaa.png

═════════════════════════════════════════════════════════════════
Помогите пожалуйста. Мне нужно организовать загрузку файла с интернет сервера (как показано на рисунке). Подскажите:
-Как проверить есть ли файл на сервере?
-Какой процедурой надо пользоваться для загрузки самого файла?
-Как сделать так чтобы ProgressBar показывала % загрузки файла?
-Как сделать чтобы Label показывал в байтах скалько байт загружено и сколько всего?
Зарание огромное спасибо!!!
 
Artexoid
тынц - для начала
 
Воспользоваться компонентом TIndyHTTP.

Мелкий пример использования .. откачка в потоке. В потом вызываются в Synchronize секции функции которые обновляют содерджимое на форме. У вас есть общее количество байт для скачки и сколько уже скачано... отсюда элементарно делаются проценты:

Код:
procedure TDownloadThread.Execute;
var
Response: TFileStream;
begin
try
 Response := TFileStream.Create('Ваш файл на диске', fmCreate);
 FDownloadHTTP := TIdHTTP.Create(nil);
 try
  FDownloadHTTP.Request.Referer := 'xxx';
  FDownloadHTTP.OnWorkBegin := WorkBegin;
  FDownloadHTTP.OnWork := Work;
  FDownloadHTTP.Get('Ваш урл', Response);
 finally
  FDownloadHTTP.Free;
  Response.Free;
 end;
except
end;
end;

procedure TDownloadThread.WorkBegin(Sender: TObject;
AWorkMode: TWorkMode; const AWorkCountMax: Integer);
begin
FMaxProgress := AWorkCountMax;
Synchronize(FSetMaxProgress);
end;

procedure TDownloadThread.Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
FProgress := AWorkCount;
Synchronize(FSetProgress);
end;
 
Спасибо большое это мне помогло!!!!!
 
Это радует <_<
 
Статус
Закрыто для дальнейших ответов.