views:

663

answers:

5

Is there any reasonable method to allow users of a webapp to download large files? I'm looking for something other than the browser's built-in download dialog - the requirements are that the user initiates the download from the browser and then some other application takes over, downloads the file in background and doesn't exit when the browser is closed. It might possibly work over http, ftp or even bittorrent. Platform independence would be a nice thing to have but I'm mostly concerned with Windows.

A: 

Take a look at this: http://msdn.microsoft.com/en-us/library/aa753618(VS.85).aspx

It´s only for IE though.

Another way is to write a BandObject for IE, which hooks up on all links and starts your application. http://www.codeproject.com/KB/shell/dotnetbandobjects.aspx

vimpyboy
+3  A: 

This might be a suitable use for BitTorrent. It works using a separate program (in most browsers), and will still run after the browser is closed. Not a perfect match, but meets most of your demands.

Vegard Larsen
A: 

Try freeDownloadManager. It does integrate with IE and Firefox.

Alexandre
+1  A: 

Maybe BITS is something for you?

Background Intelligent Transfer Service Purpose

Background Intelligent Transfer Service (BITS) transfers files (downloads or uploads) between a client and server and provides progress information related to the transfers. You can also download files from a peer.

Where Applicable

Use BITS for applications that need to:

Asynchronously transfer files in the foreground or background. Preserve the responsiveness of other network applications. Automatically resume file transfers after network disconnects and computer restarts. Developer Audience

BITS is designed for C and C++ developers.

Windows only

GvS
A: 

Depending on how large the files are, pretty much all web-browsers all have built-in download managers.. Just put a link to the file, and the browser will take over when the user clicks.. You could simply recommend people install a download manager before downloading the file, linking to a recommended free client for Windows/Linux/OS X.

Depending on how large the files are, Bittorrent could be an option. You would offer a .torrent file, when people open them in a separate download-client, which is seperate from the browser.

There are drawbacks, mainly depending on your intended audience:

  • Bittorrent is rarely allowed on corporate or school networks
  • it can be difficult to use (as it's a new concept to lots of people).. for example, if someone doesn't have a torrent client installed, they get a tiny file they cannot open, which can be confusing
  • problems with NAT/port-forwarding/firewalls are quite common
  • You have to use run a torrent tracker, and seed the file

...but, there are also benefits - mainly reduced bandwidth-usage on the server, as people download also seed the file.

dbr