Assuming you would prefer using a secure protocol (ssh and its associated sftp and scp tools) and not making your login credentials visible for anyone with access to the network (such as the folks running the coffee shop or hotel WiFi), and assuming you would prefer to use a protocol that is actually designed for and compatible with modern networks — and not a protocol (ftp) that is totally and irrevocably insecure, massively archaic (ftp entirely predates the IP-based Internet), and fundamentally incompatible with modern network security, you can use the following command:
scp -B sourcefile rich@ftp.example.com:/path/to/targetfile
That sequence does require setting up certificates, but it means you don't have to expose your password, either.
scp (one-shot file copy) and sftp (same general interface as ftp) are based on ssh, and use the same certificates and related details — once you get ssh certificates set up and the logins working, then sftp and scp will also operate.
I don't have a general write-up of this sequence, but using PuTTY (on Windows) and ssh on OS X (and when ssh is working, so is scp) covers most of this, and some related details (that latter article covers a particular target server operating system, you'd need to use the sequence for whatever target server you're working with here. Here's a bash shell script that I use to make remote MySQL database archives — this script performs a nightly transfer using AFP for the network transfer connection and not ftp nor sftp/scp tools; you'd need to use the hourly part of periodic, and rewrite the script to meet your particular needs.
There are probably commercial tools around which can solve this problem for you, as well. (I've not looked for any, though.)
If you really want to use the insecure morass that is ftp, then start reading here for details of how to expose your login credentials.