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:Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, wininet;
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;
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
Posting Komentar