views:

2726

answers:

5

I've done a good bit of research to find an upload component for .NET that I can use to upload large files, has a progress bar, and can resume the upload of large files. I've come across some components like AjaxUploader, SlickUpload, and PowUpload, to name a few. Each of these options cost money and only PowUpload does the resumable upload, but it does it with a java applet. I'm willing to pay for a component that does those things well, but if I could write it myself that would be best.

I have two questions:

  1. Is it possible to resume a file upload on the client without using flash/java/Silverlight?
  2. Does anyone have some code or a link to an article that explains how to write a .NET HTTPHandler that will allow streaming upload and an ajax progress bar?

Thank you,
Austin

[Edit]

I realized I do need to be able to do resumable file uploads for my project, any suggestions for components that can do that?

+3  A: 

It's not possible to resume an upload using standard HTML file input control, because the whole file gets submitted with the HTTP request.

I've used NeatUpload in the past, which gives you a progress bar. It's under an LGPL license, so you don't need to pay for it and it's open source.

Kon
+3  A: 

1) Is it possible to resume a file upload on the client without using flash/java/Silverlight?

No. The actual HTTP protocol itself does not support resume of partial uploads, so even if you did use flash or silverlight, you'd still need to use something else like FTP on the server.
I've "solved" this problem in the past by writing a custom client application in C# which broke the file down into small chunks (2meg), transmitted those separately, and then the server combines them all back together.

2) Does anyone have some code or a link to an article that explains how to write a .NET HTTPHandler that will allow streaming upload and an ajax progress bar?

While this doesn't solve the 'resume' problem, I've used SWFUpload on the client side and it worked brilliantly. It provides a smart file browser (where you can prompt the user for only jpeg files, etc) and upload progress tracking, all without needing to modify your server at all.

Orion Edwards
You could create a silverlight client that does the same thing as your C# application right? After the user selects the upload, break it up, and submit those parts separately? So technically, it is possible in Silverilight right?
TJB
Sure, you could do that. The hard part isn't the client side per-se, it's negotiating with the server to find out how many 2-meg chunks have previously been uploaded, and keeping track of all that stuff
Orion Edwards
An alternative (which also does not solve the resume problem) is Darren Johnson's ASP.NET upload module for IIS. This will do uploads with a progress bar without the need for Flash, Java or Silverlight:http://darrenjohnstone.net/2008/07/15/aspnet-file-upload-module-version-2-beta-1/
Cocowalla
A: 

Nothing more to add about the resume problem. I used (and keep on using) telerik radUpload and I am quite satisfied with it (it can even be used in medium trust mode which was quite important for me). The only problem I had (and was not able to fix) is to upload files bigger than 2GB...

Do mean 2MB rather than 2GB? If so, then it is due to the setting maxrequestlength in web.config
Spongeboy
A: 

SlickUpload is pretty solid and a lot of big companies use it from what the site says.

hunter
A: 

This is probably too late for your project, but POW Upload have now implemented auto resume upload in their new version. We're about to implement it on our site.

Donal
Okay, thanks for the update.
Austin