#include #include #include #include #include #include ;Mã lấy tên thư mục theo ngày tháng hiện tại máy chủ Local $sJulDate = _DateToDayValue(@YEAR, @MON, @MDAY) Local $Y, $M, $D $sJulDate = _DayValueToDate($sJulDate, $Y, $M, $D) $NAM_THANG_NGAY = $Y&$M&$D $Config_file_QT = "Config_FTP_QT.txt" _Ftp_upload($Config_file_QT) Func _Ftp_upload($s_Config_file) ;Đọc thông số kết nối từ file TXT $Config_file = $s_Config_file FileOpen($Config_file,0) $Ftp_host = FileReadLine($Config_file, 1) ;Thông số kết nối máy chủ FTP $server = FileReadLine($Config_file, 1) ;Địa chỉ HOST $username = FileReadLine($Config_file, 2) ;Tên đăng nhập $pass = FileReadLine($Config_file, 3) ;Mật khẩu $dllhandle = DllOpen('wininet.dll') ; Đường dẫn thư mục trên máy tính điểm đổi GPLX $DATA_GPLX = FileReadLine($Config_file, 4)&$NAM_THANG_NGAY&'\' ;Đường dẫn trên FTP SERVER Sở GTVT Đồng Nai $DATA_FTP = FileReadLine($Config_file, 5) $FTP_NAME = FileReadLine($Config_file, 6) ;Số lần lặp lại bước tải file $Lap = FileReadLine($Config_file, 7) $TIME_LAP = FileReadLine($Config_file, 8) $FILE_SYS = FileReadLine($Config_file, 9) FileClose($Config_file) While $Lap > 0 ;lặp đến khi nào < 0 thì dừng ;Thời gian lặp 300.000 = 5 phút sleep($TIME_LAP) $Open = _FTP_Open($FTP_NAME) $Conn = _FTPConnect($Open, $server, $username, $pass,0,1,0x08000000) ;Tạo một thư mục có tên theo ngày tháng năm trên máy chủ FTP _FTP_DirCreate($Conn,$DATA_FTP&$NAM_THANG_NGAY) ;Tìm tất cả file ảnh trên thư mục lưu của máy chủ Local $aFileList = _FileListToArray($DATA_GPLX, $FILE_SYS) $iMax = UBound($aFileList) For $i = 1 to $iMax - 1; Vòng lặp thực hiện tải số file tìm được lên máy chủ Sở GTVT $File_name = $aFileList[$i] $Ftpp = _FtpPutFile($Conn,$DATA_GPLX&$File_name, $DATA_FTP&$NAM_THANG_NGAY&'/'&$File_name , 0x08000000) Next Local $iFtpc = _FTP_Close($Open) $Lap = $Lap - 1 WEnd EndFunc Func _FTPConnect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_ServerPort = 0, $l_Service = 1, $l_Flags = 0, $l_Context = 0) Local $ai_InternetConnect = DllCall('wininet.dll', 'long', 'InternetConnect', 'long', $l_InternetSession, 'str', $s_ServerName, 'int', $i_ServerPort, 'str', $s_Username, 'str', $s_Password, 'long', $l_Service, 'long', $l_Flags, 'long', $l_Context) If @error OR $ai_InternetConnect[0] = 0 Then SetError(-1) Return 0 EndIf Return $ai_InternetConnect[0] EndFunc Func _FtpPutFile($l_FTPSession, $s_LocalFile, $s_RemoteFile, $l_Flags = 0, $l_Context = 0) Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'FtpPutFile', 'long', $l_FTPSession, 'str', $s_LocalFile, 'str', $s_RemoteFile, 'long', $l_Flags, 'long', $l_Context) If @error OR $ai_FTPPutFile[0] = 0 Then SetError(-1) Return 0 EndIf Return $ai_FTPPutFile[0] EndFunc