• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

  • Автор темы Автор темы Artexoid
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
A

Artexoid

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;
 
Спасибо большое это мне помогло!!!!!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab