Typically I am having to upload files a Cisco device across the Internet. Doing so, I found TFTP or evening having a TFTP server problematic. An easier solution is to have any standard SSH server (Linux, Unix) and copy the files to and from the server.
To upload files to the server, I use WINSCP ( https://winscp.net ). This allows me to upload the file to my server very easily. All I have to do is connect up (username/password) to my server IP address. The interface is intuitive.
To download the file to the Cisco device I use the command:
copy scp://<User>:<Password>@<Server-IP>/<File-name> flash0://<File-Name>
Now the command with the actual information in.
copy scp://JDOE: Something-Annoying!@ 18.104.22.168/c2900-universalk9-mz.SPA.153-3.M8a.bin flash0:// c2900-universalk9-mz.SPA.153-3.M8a.bin
Now the file starts coming down with no need to do anything more.
Jason Howe, PEI