Question: I'm looking for a simple **but direct** way to transfer a file of any kind and any size between two people. If possible, having only a web browser, without having the file stored on a third machine meanwhile.

I wish to do it **without** requiring the end users to connect to a third server, because that way the data will flow through the machine `xyz.com`, possibly slowing down the transfer, and posing security risks.

I would like to avoid setting up a whole FTP server just for occasional file transfers. So far I have discovered [JetBytes](http://jetbytes.com/), [Click2Copy](http://click2copy.com/) and [PipeBytes](http://host03.pipebytes.com/). Those web services should make the transfer easy. However the traffic goes through their servers so they are no good to what I want.

I want the transfer to be direct between the client and me. **Encryption would be a nice additional feature.**

I know that doing so I have to open one port on my computer, and configure a bit port redirection on my router. **However, NAT traversal would be nice addition, too.**

My question is:

**Is there a simple way for one single end-to-end direct file transfer between two computer, avoiding third parties?** (if possible, with encryption and NAT traversal)

Answer: 
The dirtiest way if you use \*nix is to use netcat (`nc`) to cat the file to the remote host. But if you want encryption, you might as well use SCP/SSH.

You have to realize that if either party is behind a NAT and you don't want to setup port forwarding, then it's impossible to make a direct connection without connecting to a third-party server first. The server does not necessarily have to relay the traffic (see <http://en.wikipedia.org/wiki/UDP_hole_punching>) and most of them don't as bandwidth is costly.

For example, Skype will try to use many NAT traversal methods to establish a direct connection before falling back to relaying traffic through their super nodes. (Skype is a very P2P network.)

As for the account problem. I guess it's unavoidable. All methods will require some kind of configuration or setup which are usually harder than registering an account.
A webserver that can do [UPnP NAT traversal](http://en.wikipedia.org/wiki/NAT_traversal) would work, the receiver would only needs a web browser. As a bonus encryption is easy with a web server, just use https.

Here is one example (payware 99USD) [RaidenHTTPD](http://www.raidenhttpd.com/en/)