I'm pretty sure it actually is the best solution. Less action that could fail, ftp - it's all really fast.
You could also take a look at XML-RPC. http://codex.wordpress.org/XML-RPC_WordPress_API/Media
Don't say non of those 2 methods is a good solution. I dare you, or anyone, to find something...