Sabtu, 15 Oktober 2022

Ternyata Mudah Mengakses FTP Server Menggunakan PHP

FTP adalah File Transfer Protokol, suatu protokol atau kesepakatan yang memungkinkan dilakukan pertukaran informasi (umumnya file) antar server dimana pengguna dapat melakukan pengaturan file seperti upload, download, delete dan sebagai melalui komputer klien tanpa harus mengakses server secara langsung.
Pada sisi server ditanamak an aplikasi FTP SERVER dan sisi komputer pengguna di-install FTP CLIENT. Filezilla merupakan salahsatu aplikasi FTP populer yang dapat diperoleh secara gratis.
Windows Explorer juga memiliki fitur FTP client, jadi seolah-olah kira bekerja didalam Explorer.


Kamu bisa menggunakan skrip PHP untuk mengakses FTP server. Instalasi XAMPP (versi Windows) yang didalam sudah terdapat fungsi-fungsi FTP.
Langkah pertama, aktifkan dahulu FileZilla FTP server. Jadi kita akan menggunakan FTP server lokal untuk tujuan pengetesan.

Saya buat beberapa skrip PHP untuk mengakses FTP server dibawah 

Mengkoneksikan client ke FTP server.
<?php
// FTP server
$ftpHost   = 'localhost';
$ftpUsername = 'user';
$ftpPassword = 'user';

// Membuat FTP connection
$connId = ftp_connect($ftpHost) or die("Couldn't connect to $ftpHost");

// try to login
if(@ftp_login($connId, $ftpUsername, $ftpPassword)){
    echo "Connected as $ftpUsername@$ftpHost";
}else{
    echo "Couldn't connect as $ftpUsername";
}

// close / Tutup the connection
ftp_close($connId);
 ?>

Simpan file dengan nama : ftp_connect.php
Kamu bisa menulis IP address komputer sebagai FTP host sedangkan username dan password di-definisikan pada aplikasi Administrator FTP Server.

Mengunggah file ke FTP server
Fungsi yang digunakan ftp_put() — Uploads a file to the FTP server, memiliki output boolean.

ftp_put(
    FTP\Connection $ftp,
    string $remote_filename,
    string $local_filename,
    int $mode = FTP_BINARY,
    int $offset = 0
): bool

<?php
// FTP server
$ftpHost   = '192.168.0.100';
$ftpUsername = 'user';
$ftpPassword = 'user';

// Membuat FTP connection
$connId = ftp_connect($ftpHost) or die("Couldn't connect to $ftpHost");

// login to FTP server
$ftpLogin = ftp_login($connId, $ftpUsername, $ftpPassword);

// local & server file path / lokal file lokasi
$localFilePath  = 'C:\ffmpeg\animal-planet.mpg';
$remoteFilePath = '/animal-planet1.mpg';

// try to upload file
if(ftp_put($connId, $remoteFilePath, $localFilePath, FTP_ASCII)){
    echo "File transfer successful - $localFilePath";
}else{
    echo "There was an error while uploading $localFilePath";
}

// close / Tutup the connection
ftp_close($connId);
 ?>
$localFilePath adalah file yang hendak di upload, masukkan juga direktorinya.
$remoteFilepath adalah nama file (dan folder jika ada) tujuan (baca, FTP server). Kamu bisa mengubah nama file.
Hati-hati dengan penulisan "/" dan "\"
Simpan file dengan nama : ftp_upload.php

Mengunduh file ke FTP server
Jika sudah sukses mengunggah file, maka kamu bisa coba skrip PHP untuk mengunduh file dari FTP server.
Fungsi yang digunakan ftp_get() — Downloads a file from the FTP server, memiliki output boolean yang dapat dieksekusi menggunakan perintah if.

ftp_get(
    FTP\Connection $ftp,
    string $local_filename,
    string $remote_filename,
    int $mode = FTP_BINARY,
    int $offset = 0
): bool

<?php
// FTP server
$ftpHost   = 'localhost';
$ftpUsername = 'user';
$ftpPassword = 'user';

// open an FTP connection
$connId = ftp_connect($ftpHost) or die("Couldn't connect to $ftpHost");

// login to FTP server
$ftpLogin = ftp_login($connId, $ftpUsername, $ftpPassword);

// local & server file path
$localFilePath  = 'c:\DATA1\animal-planet.mpg';
$remoteFilePath = '/animal-planet.mpg';

// try to download a file from server
if(ftp_get($connId, $localFilePath, $remoteFilePath, FTP_BINARY)){
    echo "File transfer successful - $localFilePath";
}else{
    echo "There was an error while downloading $localFilePath";
}

// close the connection
ftp_close($connId);
 ?>

Simpan file dengan nama : ftp_download.php

Menghapus file di FTP server
Pada FTP server dapat dikonfigurasi pengguna bisa melakukan delete file. Jika pengguna memiliki akses untuk menghapus, silahkan coba skrip PHP ini.
ftp_delete — Deletes a file on the FTP server, memiliki output boolean.

ftp_delete(FTP\Connection $ftp, string $filename): bool

<?php
// FTP server details
$ftpHost   = 'localhost';
$ftpUsername = 'user';
$ftpPassword = 'user';

// open an FTP connection
$connId = ftp_connect($ftpHost) or die("Couldn't connect to $ftpHost");

// login to FTP server
$ftpLogin = ftp_login($connId, $ftpUsername, $ftpPassword);

// server file path
$file = '/animal-planet1.mpg';

// try to delete file on server
if(ftp_delete($connId, $file)){
    echo "$file deleted successful";
}else{
    echo "There was an error while deleting $file";
}

// close the connection
ftp_close($connId);
 ?>

Simpan file dengan nana : ftp_delete.php

Melihat daftar file di FTP server
Ingat dengan perintah DIR di command prompt? Kamu juga bisa me-listing file yang terdapat di FTP server.
Fungsi yang dipakai ftp_nlist() — Returns a list of files in the given directory, memiliki output array.

ftp_nlist(FTP\Connection $ftp, string $directory): array|false

<?php
// connect and login to FTP server
$ftp_server = "localhost";
$ftp_username = 'user';
$ftp_password = 'user';
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_password);

// get file list of current directory
$file_list = ftp_nlist($ftp_conn, ".");
var_dump($file_list);

// close connection
ftp_close($ftp_conn);

 ?>

Simpan file dengan name : ftp_listfile.php

Semoga bermafaat. Ceki-ceki dan kabari-kabari di kolom komentar kalau ada salah.



Tidak ada komentar:

Posting Komentar

Digital Audio Amplifier PAM8403 and Get Datasheet for Your Hobby

  The PAM8403 is a miniature digital audio amplifier that has gained popularity among DIY enthusiasts, hobbyists, and engineers for its exc...