While playing with Puppy Linux I discovered a versatile command for uploading data with URL syntax. Not only FTP uploading but a host of other things:
"curl is a command line tool for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume, proxy tunneling and a busload of other"
It was so easy and direct to use in Linux that I adopted it as my official FTP uploader. It has been ported to Windows so I use it there also for all my grabber operations. It has so many features that there is even a web site just for this one command: http://curl.haxx.se/ You can download cURL and it's associated files here and read the many help files on it's syntax and use.
If you are concerned just with FTP uploading there is probably no reason to use cURL instead of DOS commands but I wanted to learn it for future applications involving all those buzz words in the quoted text above. Also, I flip back and forth between Windows and Linux and the syntax is the same in either OS.
Here's what the command line looks like in Spectrum Lab:
exec ("\SLuploader\curl -u username:password -T \SLuploader\SL1.jpg ftp://ftp.qsl.net ")
The root folder SLuploader contains the curl command and it's associated files. I send grabs from both of my grabbers to that folder and it sends them to the corresponding online grabber pages.
For comparison to FTP via DOS commands see my previous post Uploading Files Using DOS Commands . As I said above, if you are happy with the DOS method there is no compelling reason to switch to cURL just for FTP uploads but I wanted to point it out because of it's many advanced features which may be useful in other applications.