I found out recently that CGI will not work well if you are transferring large files. Time limits will shut down the file transfer.
If you are able to leave a computer on 24/7, you can use something like WebiToome, which bypasses your web server & sends the files directly to your computer. I am going to be using it for a printer client who needs to give their customers the ability to easily send large files.
It's not the perfect app, and their tech support, although responsive, gave up on my problem awfully easily, but it might work for you.