Last active
December 5, 2019 07:59
-
-
Save AgungPambudi/d231e229ef399bb482dbefe8a5248eb7 to your computer and use it in GitHub Desktop.
php script to upload files from local to ftp server
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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