Mounting a file system over the internet
Solution 1:
No one has mentioned sshfs yet. If you're on a modern linux distro and have ssh access to the remote host, it's as simple as:
sshfs user@hostname:/remote/directory /local/directory
Performance is quite acceptable (but not nearly as fast as a streamed sync like rsync if you require the whole directory).
Solution 2:
NFS is inherently insecure. It would be a very poor choice for connecting over the internet.
I like the post that mentions rsync. Instead of using cron to fire the transfer, I would hope that you could simply run the rsync job from your code that handles the file upload.
When the upload completes, rsync the file to their server, done.
You would need to set up a secure connection to their server for the transfer, I would expect.
If you wanted to, you could put the incoming files into a list for transfer, removing the names after successful copy, and give yourself some fail over capability, in case something happens to the connection.
As someone else already pointed out, rsync is designed to handle groups of files, or a hierarchy (thanks, spell check) , so this wouldn't be that hard to accomplish.