Cliente FTP com Delphi XE6 | Vídeo
Olá pessoal hoje vamos desenvolver uma aplicação cliente FTP com Delphi XE6, alguns leitores podem estranhar pois o forte do blog são postagens de PHP mas também programo em Delphi há vários anos.
Hoje em dia com menos projetos devido a minha especialização em desenvolvimento WEB, mas gosto de integrar minhas aplicações em Delphi com a internet, então pretendo escrever alguns posts com Delphi sempre voltado para algum tipo de integração com a WEB.
Desenvolvendo cliente FTP com Delphi XE6
Objetivo desse post e do vídeo é demonstrar como é fácil trabalhar com FTP utilizando Delphi e o componente TIdFTP, nesse exemplo vou construir uma aplicação cliente FTP, para essa aplicação é necessário baixar RXLib download aqui e instalar. Vou postar os códigos separados por procedure e ao final explico as funcionalidades no vídeo.
Evento OnClick do botão Conectar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
// Configura e inicia uma conexão FTP procedure TfrmFTP.btnConectarClick(Sender: TObject); begin try if not IdFTP.Connected then begin IdFTP.Host := 'servidor_ftp'; IdFTP.Username := 'usuario_ftp'; IdFTP.Password := 'senha'; IdFTP.Port := 21; IdFTP.Connect; IdFTP.List(listaArquivoServidor.Items, '', false); btnConectar.Enabled := False; btnDesconectar.Enabled := True; btnUpload.Enabled := True; btnDownload.Enabled := True; end; except on E:Exception do begin MessageDlg('Erro na conexão!', mtError, [mbOK], ); btnConectar.Enabled := true; btnDesconectar.Enabled := false; btnUpload.Enabled := false; btnDownload.Enabled := false; end; end; end; |
Evento OnClick do botão Desconectar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// Desconecta o FTP procedure TfrmFTP.btnDesconectarClick(Sender: TObject); begin try if IdFTP.Connected then begin IdFTP.Disconnect; listaArquivoServidor.Clear; btnConectar.Enabled := True; btnDesconectar.Enabled := False; btnUpload.Enabled := False; btnDownload.Enabled := False; end; except on E:Exception do begin MessageDlg('Erro ao desconectar!', mtError, [mbOK], ); btnConectar.Enabled := false; btnDesconectar.Enabled := true; btnUpload.Enabled := true; btnDownload.Enabled := true; end; end; end; |
Evento OnClick do botão Upload
1 2 3 4 5 6 |
// Envia arquivos locais para o servidor e atualiza a listagem de arquivos procedure TfrmFTP.btnUploadClick(Sender: TObject); begin IdFTP.Put(listaArquivoLocal.FileName, '', false); IdFTP.List(listaArquivoServidor.Items, '', false); end; |
Evento OnClick do Botão Download
1 2 3 4 5 6 7 |
// Executa o download dos arquivos do servidor e atualiza a listagem de arquivos locais procedure TfrmFTP.btnDownloadClick(Sender: TObject); begin IdFTP.Get(listaArquivoServidor.Items[listaArquivoServidor.ItemIndex], listaArquivoServidor.Items[listaArquivoServidor.ItemIndex], False, true); listaArquivoLocal.ApplyFilePath(DirectoryEdit.Text); listaArquivoLocal.Update; end; |
Evento OnStatus do TIdFTP
1 2 3 4 5 6 |
// Atualiza o StatusBar com estado da conexão FTP procedure TfrmFTP.IdFTPStatus(ASender: TObject; const AStatus: TIdStatus; const AStatusText: string); begin sbStatusFTP.Panels[1].Text := AStatusText; end; |
Evento OnChange do TDirectoryEdit
1 2 3 4 5 |
// Lista os arquivos locais conforme o diretório selecionado procedure TfrmFTP.DirectoryEditChange(Sender: TObject); begin listaArquivoLocal.ApplyFilePath(DirectoryEdit.Text); end; |
Layout da Aplicação
Arquivos locais do lado direito e arquivos no servidor WEB do lado esquerdo.
Assista aos vídeos complementares
Construindo a interface
Codificando os botões
Bom pessoal, nesse post demonstrei como é simples construir uma aplicação FTP com Delphi XE6, essa solução pode ser aplicada de diversas maneiras eu mesmo já integrei sistemas em PHP com aplicações em Delphi onde era necessário utilizar FTP. Nesse post para fins didáticos achei melhor construir uma interface com detalhes, mas nada impede que o FTP seja usado de outra maneira.
Se você gostou desse post compartilhe nas redes sociais abaixo, até a próxima …