Skip to content

Instantly share code, notes, and snippets.

@AgungPambudi
Last active December 5, 2019 07:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AgungPambudi/d231e229ef399bb482dbefe8a5248eb7 to your computer and use it in GitHub Desktop.
Save AgungPambudi/d231e229ef399bb482dbefe8a5248eb7 to your computer and use it in GitHub Desktop.
php script to upload files from local to ftp server
<?php
/*
| title : upload_files_filtering_to_ftp.php
| description : php script to upload files from local to ftp.
| author : Agung Pambudi
| website : http://agungpambudi.com
| email : mail@agungpambudi.com
| format args : "17-12-23"
| _ _ _
| ___ ___ _ _ ___ ___ ___ ___ _____| |_ _ _ _| |_| ___ ___ _____
| | .'| . | | | | . | . | .'| | . | | | . | |_| _| . | |
| |__,|_ |___|_|_|_ | _|__,|_|_|_|___|___|___|_|_|___|___|_|_|_|
| |___| |___|_|
|
| set to cron
| 10 17,18,19,20,21,22,23 * * * php -f /var/www/cron/upload_files_filtering_to_ftp.php 19-10-30 > /dev/null 2>&1
*/
date_default_timezone_set("Asia/Jakarta");
$ftp_host = "";
$ftp_username = "";
$ftp_password = "";
$ftp_port = "";
if(isset($argv[1])) {
$default_arg = $argv[1];
} else {
$default_arg = date('y-m-d', strtotime('+1 day'));
}
list($lsyear,$lsmonth,$lsdate) = explode("-", $default_arg);
$varcombine = $lsyear.$lsmonth.$lsdate;
$ftp_path = "/20".$varcombine; // ex. /20191030
$local_dir_path = "D:\\DATA\\HF".$varcombine."\\"; // ex. D:\DATA\HF191030\
function ftp_download_file($param_ftp_host, $param_ftp_port, $param_ftp_user, $param_ftp_pass, $param_local_file, $param_ftp_file) {
$ftp_conn = ftp_connect($param_ftp_host,$param_ftp_port) or die("Couldn't connect to $ftp_host");
ftp_login($ftp_conn,$param_ftp_user,$param_ftp_pass);
if(ftp_get($ftp_conn,$param_local_file, $param_ftp_file, FTP_BINARY)) {
return true;
}
ftp_close($ftp_conn);
}
function ftp_upload_file($param_ftp_host, $param_ftp_user, $param_ftp_pass, $param_ftp_port, $param_local_files, $param_ftp_dir) {
$ftp_conn = ftp_connect($param_ftp_host,$param_ftp_port) or die("Couldn't connect to $ftp_host");
ftp_login($ftp_conn,$param_ftp_user,$param_ftp_pass);
ftp_pasv ($ftp_conn, true);
if(ftp_put($ftp_conn, $param_ftp_dir, $param_local_files, FTP_BINARY)) {
ftp_close($ftp_conn);
return true;
}
ftp_close($ftp_conn);
}
function ftp_create_directory($param_ftp_host, $param_ftp_user, $param_ftp_pass, $param_ftp_port, $param_ftp_dir){
$ftp_conn = ftp_connect($param_ftp_host,$param_ftp_port) or die("Couldn't connect to $ftp_host");
ftp_login($ftp_conn,$param_ftp_user,$param_ftp_pass);
if(@ftp_mkdir($ftp_conn, $param_ftp_dir)) {
ftp_close($ftp_conn);
return true;
}
ftp_close($ftp_conn);
}
// create directory on ftp
ftp_create_directory($ftp_host, $ftp_username, $ftp_password, $ftp_port, $ftp_path);
$arr_filters = ['TGTA','TVCK','TZXE','F31G','TWZU','FSSQ','TQF6','TM9E','TLVY','TQAC','T2CD'];
for ($i = 0; $i < count($arr_filters); $i++) {
// check if initial alphabet is T
$filenames = (substr($arr_filters[$i], 0, 1) == "T") ? "HR".$varcombine.".".substr($arr_filters[$i], 1, 3) : "FR".$varcombine.".".substr($arr_filters[$i], 1, 3);
// ex. filename : FR191029.SSQ
$upload = ftp_upload_file($ftp_host, $ftp_username, $ftp_password, $ftp_port, $local_dir_path.basename($filenames), $ftp_path."/".basename($filenames)); // upload the file
// check upload status
print (!$upload) ? $filenames . ' - FAIL' : $filenames . ' - SUCCESS';
print "\n";
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment