Upload to a remote server using wp_remote_post

Something like this, perhaps.

$args['body'] = array('post_file'=>'@/path/FILE.EXT');
wp_remote_post($url, $args);

The $args array contains the parameters for the post. The body parameter controls what is posted. There’s many other possible parameters as well. See http://codex.wordpress.org/HTTP_API#Other_Arguments

Note that the @file method may be specific to curl, and might not work with the other possible HTTP transports that WP supports.