Open Script
MQL Library (622792 line breaks)
Back
Upload a file throught FTP
.
##############################;
# Upload a file throught FTP #;
##############################;

#Create a script to upload;
script create post "demo.file.ftp.upload" false 1 
  (param
  	(var "[localDirectory]" {true} "The local directory" is_null:false is_empty:false "/Users/jimmitry/Desktop/ftp")
  	(var "[filter]" {true} "The file filter from the remote directory" is_null:false is_empty:false ".*png")
  	(var "[remoteDirectory]" {true} "The remote directory" is_null:false is_empty:false "/Users/jimmitry/Desktop")
  ;) 
  "Upload file through FTP" 
{

	try {

		#Connect to the FTP server;
		ftp connect "session1" {cm get "demo_cm_ftp";};
		ftp set type "session1" "BINARY";

		#Move to the remote directory;
		ftp cd "session1" [remoteDirectory];

		#Get all local files;
		json load "files" (file dir_list_regex [localDirectory] [filter] true true);

		#Put all files;
		-> "[nbFiles]" (json count "files" "/");
		for (-> "[i]" 0) (< [i] [nbFiles]) (++ "[i]") {

			-> "[filename]" (json select "files" (concat "/[" [i] "]"));
		
			ftp put "session1" (concat [localDirectory] "/" [filename]) "RESUME";
		
		};

		#Disconnect the session;
		ftp disconnect "session1";
	
	} {
	
		#Close objects;
		try {ftp disconnect "session1";} {} "[sub_err]";

		#Generate an error;
		exception (1) ([err]);
	
	} "[err]";
	
	
} "Return nothing";

#Execute the script;
execute "demo.file.ftp.upload.post"
	"[localDirectory]" "/Users/jimmitry/Desktop/ftp"
	"[filter]" ".*png"
	"[remoteDirectory]" "/Users/jimmitry/Desktop"
;

French Technology
© 2004-2024