10
Even though FTP is the most efficient protocol for file transfer, it's pretty hard to implement. I would use HTTP. The support is built-in on most platforms and it's more resilient to firewalls.
HTTP is probably the way to go for small files and/or unsophisticated users. Having to configure a firewall will stop many users cold. Almost every network allows http transfers over port 80 with no special configuration.
You did say Big files, though. You can write the transfer code such that it uses range transfers to retry interrupted downloads.
Someone has probably written a file transfer library that handles partial transfers and retries automatically, though I don't know of one.