Hello there,
Here is a script that deals with uploading to FTP sites. It works on single files but has some very neat features.
What does this do?
It will help you upload your files to a remote FTP server. You can use a local file or a web address.
Copies the URL plus image tags to your clipboard so you can easily paste them to a forum or into HTML
You can use multiple FTP servers and the path for each server is remembered.
It keeps a log file for each server's activity.
Please read the instructions carefully.
I am posting this for two reasons.
1. A lot of people in a group I belong to have found it very handy and I have added all of their suggestions.
2. There are some neat little tricks that MS can do that some people may find useful.
As is often the case for me, this script grew from a very small idea. So the code has got a bit messy and could probably be rebuilt more efficiently. If anyone would like to do that of course you are more than welcome.
Please note:
To download the full script with a proper installer and manual go here:
Download: http://www.pendlebury.biz/applications/
If you attempt to run the script you will need to make your own ftp.ini file in the correct place and you will need to manually add the shortcut to the sendto location.
I would suggest that anyone who is interested can install the proper version but also reference this code to see what's going on.
Then feel free to post in the normal forum with questions, ideas, suggestions etc.
All the best.
Phil.
(Code in next post)
FTP Uploader
Moderators: Dorian (MJT support), JRL, Phil Pendlebury
- Phil Pendlebury
- Automation Wizard
- Posts: 543
- Joined: Tue Jan 16, 2007 9:00 am
- Contact:
FTP Uploader
Last edited by Phil Pendlebury on Fri Feb 26, 2010 2:19 pm, edited 5 times in total.
Phil Pendlebury - Linktree
- Phil Pendlebury
- Automation Wizard
- Posts: 543
- Joined: Tue Jan 16, 2007 9:00 am
- Contact:
Code: Select all
// FTP Uploader by Phil Pendlebury - http://www.pendlebury.biz
Let>RP_ADMIN=1
Let>APP_TITLE=FTP Uploader
Let>MSG_STAYONTOP=1
Let>MSG_CENTERED=1
Let>MSG_WIDTH=360
Let>MSG_HEIGHT=260
Let>WF_TYPE=1
Let>VAREXPLICIT=0
Let>CF_OVERWRITE=1
Let>FTP_TIMEOUT=17
Let>PRESS_ALLOWVARS=1
Let>version=Version 3.55 - 08 March 2010
//
GetEnvVar>APPDATA,FTPINIFILE
Let>FTPINIFILE=%FTPINIFILE%\Phil Pendlebury\FTP Uploader
IfFileExists>%FTPINIFILE%\ftp.ini
GOTO>iniexists
ELSE
MDL>Could not find FTP.INI file!%CRLF%%CRLF%Please install the application correctly. Or create this file in the correct location and add some relevant data.%CRLF%%CRLF%OK to Quit.
GOTO>Exit
ENDIF
Label>iniexists
//
Let>def_file=
Let>webupload=False
//
Separate>command_line," ,cmd_var
IF>cmd_var_2=
Let>fromsendto=False
ELSE
Let>def_file=cmd_var_2
StringReplace>def_file,",,def_file
Let>fromsendto=True
ENDIF
//
Let>choice_string=
//
Let>info_count=1
Label>choice_loop
ReadIniFile>%FTPINIFILE%\ftp.ini,%info_count%,server_name,choice_%info_count%
IF>choice_%info_count%=
GOTO>choicemade
ENDIF
Let>actual_choice=choice_%info_count%
Let>choice_string=%choice_string%%actual_choice%%CRLF%
Let>info_count=info_count+1
GOTO>choice_loop
//
Label>choicemade
//
Dialog>ChooserDialog
Caption=Choose FTP
Width=263
Height=160
Top=CENTER
Left=CENTER
Max=0
Min=0
Close=0
Resize=0
ComboBox=msComboBox1,101,35,148,%choice_string%
Label=Basic FTP Manager by Phil Pendlebury,8,8,true
Label=Choose FTP Site:,8,40,true
Button=QUIT,8,72,73,33,3,,Bugger off!
Button=Go!,176,72,73,33,4,,Go on then
Button=NEW,92,72,73,33,6,,Create a new FTP address
MainMenu=Menu,About(30),Manual(40),Developers(50),WWW(60),Quit(3)
EndDialog>ChooserDialog
//
Show>ChooserDialog
Label>ChooseLoop
GetDialogAction>ChooserDialog,ress
Let>ftp_site=%ChooserDialog.msComboBox1%
IF>ress=4,continue
IF>ress=3,Exit
IF>ress=6,makenew
IF>ress=30
MDL>FTP Uploader by Phil Pendlebury%CRLF%%CRLF%%version%
RDA>ChooserDialog
ENDIF
IF>ress=40
Executefile>%FTPINIFILE%\ftpuploader.chm
RDA>ChooserDialog
ENDIF
IF>ress=50
MDL>Phil Pendlebury, David Floyd, Jan Truijens, Stevie, Rustam, Pal Svennevig, SLL, Jake, Paul Woodlock, Brian Hendrickson, Marcus Tettmar, JRL
RDA>ChooserDialog
ENDIF
IF>ress=60
Executefile>http://www.pendlebury.biz
RDA>ChooserDialog
ENDIF
//
//
Wait>0.001
GOTO>ChooseLoop
//
Label>continue
CloseDialog>ChooserDialog
//
Let>ini_section=1
//
Label>ini_loop
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,server_name,ini_part
If>ini_part=ftp_site
GOTO>readallinfo
ENDIF
Let>ini_section=ini_section+1
GOTO>ini_loop
//
Label>readallinfo
ReadIniFile>%FTPINIFILE%\ftp.ini,defaults,def_hotkey,defhotkey
ReadIniFile>%FTPINIFILE%\ftp.ini,defaults,def_log,deflog
ReadIniFile>%FTPINIFILE%\ftp.ini,defaults,def_capture,defcapture
ReadIniFile>%FTPINIFILE%\ftp.ini,defaults,def_restart,defrestart
//
Let>make_new_entry=0
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,server_name,def_name
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,server_address,def_server
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,remote_path,def_folder
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,online_path,def_http
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,ftp_username,def_username
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,ftp_password,def_password
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,hide_password,def_hide
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,bbcode,def_bb
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,clip,def_clipboard
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,server_port,def_port
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,upload_mode,def_mode
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,passive_mode,def_passive
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,swap_these,def_swap
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,swap_with,def_with
IF>fromsendto=False
ReadIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,last_path,def_file
ENDIF
//
IF>def_bb=IMG
Let>bb_radio=0
ENDIF
IF>def_bb=URL
Let>bb_radio=1
ENDIF
IF>def_bb=NONE
Let>bb_radio=2
ENDIF
//
IF>def_clipboard=FULL
Let>clip_radio=0
ENDIF
IF>def_clipboard=FTP
Let>clip_radio=1
ENDIF
IF>def_clipboard=HTTP
Let>clip_radio=2
ENDIF
//
GOTO>skipnew
//
Label>makenew
CloseDialog>ChooserDialog
Let>make_new_entry=1
Let>def_name=
Let>def_server=
Let>def_folder=
Let>def_http=
Let>def_username=
Let>def_password=
Let>def_hide=
Let>bb_radio=0
Let>clip_radio=0
Let>def_port=21
Let>def_mode=I
Let>def_passive=1
Label>skipnew
//
Dialog>FTPDialog
Caption=FTP Uploader
Width=391
Height=474
Top=CENTER
Left=CENTER
Max=0
Min=0
Close=0
Resize=0
Label=FTP Uploader,8,8,true
Edit=msEdit7,88,39,233,def_name
Edit=msEdit1,88,69,233,def_server
Edit=msEdit2,88,99,233,def_folder
Edit=msEdit3,88,129,233,def_http
Edit=msEdit4,88,159,233,def_username
Edit=msEdit5,88,189,233,*TYPE HERE TO CHANGE*
Edit=msEdit6,88,219,233,def_file
Edit=msEdit8,88,249,145,def_swap
Edit=msEdit9,272,249,49,def_with
Edit=msEdit10,272,279,49,defhotkey
RadioGroup=msRadioGroup1,BBCode,8,281,73,80,IMG%CRLF%URL%CRLF%NONE,bb_radio
RadioGroup=msRadioGroup2,Clipboard,88,280,73,81,FULL%CRLF%FTP%CRLF%HTTP,clip_radio
CheckBox=msCheckBox1,Write Log File,232,304,102,deflog
CheckBox=msCheckBox2,Capture URL to Log File,232,322,145,defcapture
CheckBox=msCheckBox3,Restart After Upload,232,340,122,defrestart
Label=Name:,8,42,true
Label=FTP Server:,8,72,true
Label=FTP Path:,8,102,true
Label=HTTP Path:,8,132,true
Label=FTP Username:,8,162,true
Label=FTP Password:,8,192,true
Label=Upload File:,8,222,true
Label=Browser HotKey:,185,282,true
Button=GO,224,376,153,41,4,,Go for it!
Button=QUIT,8,376,153,41,3,,Quit Now!
Button=WRITE,328,38,49,172,5,,Write current config to ini file
Button=Browse,328,218,49,23,0,,Browse for file to upload
Label=Replace:,8,252,true
Label=With:,240,252,true
FileBrowse=Browse,msEdit6,,open,%def_file%
MainMenu=Menu,About(30),Manual(40),Developers(50),WWW(60),Quit(3)
MainMenu=Choose Site,About(30),Manual(40),Developers(50),WWW(60),Quit(3)
EndDialog>FTPDialog
//
Label>ShowFTP
Show>FTPDialog
Label>DialogLoop
GetDialogAction>FTPDialog,res
//
Let>name=%FTPDialog.msEdit7%
Let>server=%FTPDialog.msEdit1%
Let>folder=%FTPDialog.msEdit2%
Let>httpad=%FTPDialog.msEdit3%
Let>username=%FTPDialog.msEdit4%
Let>password=%def_password%
Let>newpassword=%FTPDialog.msEdit5%
Let>filename=%FTPDialog.msEdit6%
Let>bbcodetype=%FTPDialog.msRadioGroup1%
Let>cliptype=%FTPDialog.msRadioGroup2%
Let>logfileon=%FTPDialog.msCheckBox1%
Let>urltolog=%FTPDialog.msCheckBox2%
Let>restart_after=%FTPDialog.msCheckBox3%
Let>notallowed=%FTPDialog.msEdit8%
Let>replacewith=%FTPDialog.msEdit9%
Let>hotkey=%FTPDialog.msEdit10%
//
IF>%newpassword%<>*TYPE HERE TO CHANGE*
Let>password=%newpassword%
ENDIF
//
/////////////////////////////////////////
IF>fromsendto=False
Let>FTPDialog.msEdit6.fbinit=%def_file%
rda>FTPDialog
ELSE
IF>webupload=False
Separate>%def_file%,\,fchunks
Let>def_actual=fchunks_%fchunks_count%
StringReplace>%def_file%,%def_actual%,,def_path
Let>FTPDialog.msEdit6.fbinit=%def_path%
rda>FTPDialog
ENDIF
ENDIF
//
IF>res=4,doitnow
IF>res=3,Exit
IF>res=5,writeini
IF>res=30
MDL>FTP Uploader by Phil Pendlebury%CRLF%%CRLF%%version%
RDA>FTPDialog
ENDIF
IF>res=40
Executefile>%FTPINIFILE%\ftpuploader.chm
RDA>FTPDialog
ENDIF
IF>res=50
MDL>Phil Pendlebury, David Floyd, Jan Truijens, Stevie, Rustam, Pal Svennevig, SLL, Jake, Paul Woodlock, Brian Hendrickson, Marcus Tettmar, JRL
RDA>FTPDialog
ENDIF
IF>res=60
Executefile>http://www.pendlebury.biz
RDA>FTPDialog
ENDIF
/////////////////////////////////////////
Wait>0.001
GOTO>DialogLoop
//
Label>doitnow
CloseDialog>FTPDialog
//
IF>%urltolog%=True
Let>logfileon=True
StringReplace>%hotkey%, ,,hotkey
Separate>%hotkey%,+,hotkey_arr
Let>hkey_1=hotkey_arr_1
Let>hkey_U=hotkey_arr_2
Let>hkey_2={lower(%hkey_U%)}
ENDIF
//
MidStr>%filename%,1,7,html_string
IF>%html_string%=http://
Let>webupload=True
Separate>%filename%,/,httpchunks
Let>temp_name=httpchunks_%httpchunks_count%
HTTPRequest>%filename%,%FTPINIFILE%\%temp_name%,GET,,,,,,
Let>actualfile=%temp_name%
Let>filename=%FTPINIFILE%\%temp_name%
ELSE
Let>webupload=False
StringReplace>%filename%,/,\,filename
Separate>%filename%,\,chunks
Let>actualfile=chunks_%chunks_count%
ENDIF
//
IF>{(%actualfile%="") OR (%filename%="")}
MessageModal>NO FILE SELECTED!%CRLF%%CRLF%Please select a file using the Browse button or paste a URL into the Upload File area.%CRLF%%CRLF%Press OK to continue.
GOTO>ShowFTP
ENDIF
//
Length>%notallowed%,length_na
IF>%length_na%>0
GOSUB>namecheck
ENDIF
//
IF>def_passive=0
Let>FTP_PASSIVE=0
ELSE
Let>FTP_PASSIVE=1
ENDIF
//
Msg>Uploading to FTP
//
FTPPutFile>%server%,%username%,%password%,%def_port%,%filename%,%folder%,%actualfile%,%def_mode%
IF>%FTP_RESULT%=Success
// Do nothing
ELSE
IF>%FTP_RESULT%=-
MDL>Server could not be contacted. Please check the FTP server address.
RDA>FTPDialog
GOTO>ShowFTP
ENDIF
MDL>%FTP_RESULT%
RDA>FTPDialog
GOTO>ShowFTP
ENDIF
//
IF>webupload=True
StringReplace>%FTPDIALOG.MSEDIT6%,%actualfile%,,used_path
DeleteFile>%filename%
ELSE
IF>fromsendto=True
Let>used_path=%def_path%
ELSE
StringReplace>%filename%,%actualfile%,,used_path
ENDIF
ENDIF
//////////////////////////////////////////////////////////////////////////////
EditIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,last_path,%used_path%
//
GetDate>is_date
GetTime>is_time
//
IF>cliptype=FULL
Let>full_ftp_location=%username%:%password%@%server%/%folder%/%actualfile%
Let>clip_ftp_location=%username%:%password%@%server%/%folder%/%actualfile%
StringReplace>full_ftp_location,//,/,full_ftp_location
StringReplace>clip_ftp_location,//,/,clip_ftp_location
Let>full_ftp_location=ftp://%full_ftp_location%
Let>clip_ftp_location=ftp://%clip_ftp_location%
ENDIF
IF>cliptype=FTP
Let>full_ftp_location=%server%/%folder%/%actualfile%
Let>clip_ftp_location=%server%/%folder%/%actualfile%
StringReplace>full_ftp_location,//,/,full_ftp_location
StringReplace>clip_ftp_location,//,/,clip_ftp_location
Let>full_ftp_location=ftp://%full_ftp_location%
Let>clip_ftp_location=ftp://%clip_ftp_location%
ENDIF
IF>cliptype=HTTP
Let>full_ftp_location=%server%/%folder%/%actualfile%
Let>clip_ftp_location=%httpad%/%actualfile%
StringReplace>full_ftp_location,//,/,full_ftp_location
StringReplace>clip_ftp_location,//,/,clip_ftp_location
Let>full_ftp_location=ftp://%full_ftp_location%
Let>clip_ftp_location=http://%clip_ftp_location%
ENDIF
//
IF>bbcodetype=IMG
Let>clip_ftp_location=[img]%clip_ftp_location%[/img]
ENDIF
IF>bbcodetype=URL
Let>clip_ftp_location=[URL]%clip_ftp_location%[/url]
ENDIF
IF>bbcodetype=NONE
// Left intentionally blank!
ENDIF
PutClipBoard>%clip_ftp_location%
//
MessageModal>File: %actualfile% has been uploaded%CRLF%%CRLF%The info has been copied to your clipboard%CRLF%%CRLF%Now simply paste to your desired location if required.
/////////////////
IF>logfileon=True
WriteLn>%FTPINIFILE%\%server%.txt,lineresult,%CRLF%%name% - %is_date% %is_time%%CRLF%File: %actualfile%%CRLF%Written to: %full_ftp_location%%CRLF%Clipboard: %clip_ftp_location%
ENDIF
IF>urltolog=True
MessageModal>About to copy and write current URL to the log file%CRLF%%CRLF%Do not continue until you have submitted your post and the web page has re-loaded%CRLF%%CRLF%Web browser must have focus for this operation. You can be sure it has focus by clicking on the browser window%CRLF%%CRLF%Press OK to capture the current URL in 5 seconds.
Wait>5
Press %hkey_1%
Wait>0.1
Send>%hkey_2%
Release %hkey_1%
Wait>1
Press CTRL
Wait>0.1
Send>c
Release CTRL
Wait>1
GetClipBoard>url_copy
WriteLn>%FTPINIFILE%\%server%.txt,lineresult,Posted to this URL: %url_copy%
MDL>URL %url_copy% Info written to log file.%CRLF%%CRLF%Thank you for using FTP Uploader.
ENDIF
/////////////////
EditIniFile>%FTPINIFILE%\ftp.ini,defaults,def_hotkey,%hotkey%
EditIniFile>%FTPINIFILE%\ftp.ini,defaults,def_log,%logfileon%
EditIniFile>%FTPINIFILE%\ftp.ini,defaults,def_capture,%urltolog%
EditIniFile>%FTPINIFILE%\ftp.ini,defaults,def_restart,%restart_after%
/////////////////
IF>restart_after=True
CloseDialog>FTPDialog
GOTO>ShowFTP
ELSE
GOTO>Exit
ENDIF
//
//
// Write info to new section of ini file
Label>writeini
CloseDialog>FTPDialog
//
IF>make_new_entry=0
EditIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,server_name,%name%
EditIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,server_address,%server%
EditIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,remote_path,%folder%
EditIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,online_path,%httpad%
EditIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,ftp_username,%username%
EditIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,ftp_password,%password%
EditIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,bbcode,%bbcodetype%
EditIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,clip,%cliptype%
EditIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,swap_these,%notallowed%
EditIniFile>%FTPINIFILE%\ftp.ini,%ini_section%,swap_with,%replacewith%
ENDIF
//
IF>make_new_entry=1
WriteLn>%FTPINIFILE%\ftp.ini,q,
WriteLn>%FTPINIFILE%\ftp.ini,q,[%info_count%]
WriteLn>%FTPINIFILE%\ftp.ini,q,server_name=%name%
WriteLn>%FTPINIFILE%\ftp.ini,q,server_address=%server%
WriteLn>%FTPINIFILE%\ftp.ini,q,remote_path=%folder%
WriteLn>%FTPINIFILE%\ftp.ini,q,online_path=%httpad%
WriteLn>%FTPINIFILE%\ftp.ini,q,ftp_username=%username%
WriteLn>%FTPINIFILE%\ftp.ini,q,ftp_password=%newpassword%
WriteLn>%FTPINIFILE%\ftp.ini,q,bbcode=%bbcodetype%
WriteLn>%FTPINIFILE%\ftp.ini,q,clip=%cliptype%
WriteLn>%FTPINIFILE%\ftp.ini,q,server_port=21
WriteLn>%FTPINIFILE%\ftp.ini,q,upload_mode=I
WriteLn>%FTPINIFILE%\ftp.ini,q,passive_mode=1
WriteLn>%FTPINIFILE%\ftp.ini,q,swap_these=()<>\/-:*?" |
WriteLn>%FTPINIFILE%\ftp.ini,q,swap-with=_
WriteLn>%FTPINIFILE%\ftp.ini,q,
ENDIF
//
MessageModal>INI File written. Hit OK to continue.
GOTO>ShowFTP
//
SRT>namecheck
// ENTER DISALLOWED CHARACTERS
Length>%notallowed%,naloop
// CHECK TO SEE IF DISALLOWED CHARS ARE IN FILENAME
Let>rep=1
REPEAT>rep
MidStr>%notallowed%,rep,1,isitthere
// FIND DISALLOWED AND IF ITS THERE REPLACE IT WITH UNDERSCORE
StringReplace>%actualfile%,isitthere,%replacewith%,actualfile
Let>rep=rep+1
UNTIL>rep>naloop
End>namecheck
Label>Exit
Exit>
Phil Pendlebury - Linktree