Upload File Lewat FTP Dengan Delphi

Karena sesuatu hal, saya memerlukan fitur upload file menggunakan aplikasi yang saya buat dengan delphi. Nah, karena fitur itu sudah sukses, maka saya akan bagi kepada siapa saja yang memerlukannya.

Sebelum membuat procedure ataupun function untuk upload lewat ftp ini, kita harus menambahkan 1 uses terlebih dahulu, yaitu wininet.

Misalkan saya akan membuat sebuah aplikasi, yang mana jika aplikasi tersebut di jalankan, maka akan secara otomatis mengupload suatu file lewat ftp, maka langkah - langkah membuat programnya adalah sebagai berikut :

1. Buat project baru
2. Double click pada form untuk masuk ke code editor
3. Pada bagian uses, tambahkan wininet.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, wininet;
4. Ganti procedure TForm1.FormCreate menjadi seperti dibawah ini:

procedure TForm1.FormCreate(Sender: TObject);
var
  hInet, hConnect: HINTERNET;
  local_file, remote_file, user,remote_server, pass: PChar;
begin
  local_file := 'D:\data\file.txt';//lokasi file yang akan di upload
  remote_file := 'Log.ini';//nama file hasil upload nantinya
  user := 'username';//username ftp anda
  pass := 'password';//password ftp anda
  remote_server := 'ftp.drivehq.com';//host(domain / Ip) ftp anda

  hInet := InternetOpen('iexplore', INTERNET_OPEN_TYPE_DIRECT, nil,nil,0);
  if hInet = nil then
    RaiseLastOSError;

  hConnect := InternetConnect(hInet,
    remote_server,
    INTERNET_DEFAULT_FTP_PORT,
    user, pass,
    INTERNET_SERVICE_FTP,
    INTERNET_FLAG_PASSIVE,
    0);
  if hConnect = nil then
    RaiseLastOSError;

  if not ftpPutFile(hConnect, local_file, remote_file, FTP_TRANSFER_TYPE_BINARY, 0) then
    RaiseLastOSError;

  if not InternetCloseHandle(hConnect) then
    RaiseLastOSError;
  if not InternetCloseHandle(hInet) then
    RaiseLastOSError;
end;

Silahkan jalankan program anda, lalu cek pada ftp server anda, maka akan ada file yang anda upload tadi.
Catatan : koneksi internet anda harus aktif. :D

code all

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,wininet;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  hInet, hConnect: HINTERNET;
  local_file, remote_file, user,remote_server, pass: PChar;
begin
  local_file := 'D:\data\file.txt';//lokasi file yang akan di upload
  remote_file := 'Log.ini';//nama file hasil upload nantinya
  user := 'username';//username ftp anda
  pass := 'password';//password ftp anda
  remote_server := 'ftp.drivehq.com';//host(domain / Ip) ftp anda

  hInet := InternetOpen('iexplore', INTERNET_OPEN_TYPE_DIRECT, nil,nil,0);
  if hInet = nil then
    RaiseLastOSError;

  hConnect := InternetConnect(hInet,
    remote_server,
    INTERNET_DEFAULT_FTP_PORT,
    user, pass,
    INTERNET_SERVICE_FTP,
    INTERNET_FLAG_PASSIVE,
    0);
  if hConnect = nil then
    RaiseLastOSError;

  if not ftpPutFile(hConnect, local_file, remote_file, FTP_TRANSFER_TYPE_BINARY, 0) then
    RaiseLastOSError;

  if not InternetCloseHandle(hConnect) then
    RaiseLastOSError;
  if not InternetCloseHandle(hInet) then
    RaiseLastOSError;
end;

end.

Komentar

Postingan populer dari blog ini

Install Packages dan extRoot 3020

menghitung daya watt amplifier dengan sopware