Solved

Ideal way of uploading huge files in ASP.NET

Posted on 2006-11-06
10
260 Views
Last Modified: 2010-04-06
How to accomodate uploading huge files in ASP.NET. To quantify the term 'huge', I mean something around 500 MB per user.

Since this is a photo studio portal website, I also need to take into account regarding concurrent users and other server equilibrium factors and hence I don't think I can just increase HttpRuntime values in machine.config or web.config just in ad hoc fashion.

If ASP.NET can not scale up, can some workaround be done using ASP or PHP or Perl technologies. The bottomline of the problem is that the application would run in ASP.NET. While an upload is encountering, the handler above would process that and return the processing to the main thread.

Any clues?
0
Comment
Question by:deepaknet
10 Comments
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 17880487
How about letting them mail you a CD or letting you download?
If their connection isn't fast at uploading, it would take prohibitably long time to upload, no?

I don't think I would sit around waiting for my ADSL line to upload 500MB with my 256K up
0
 
LVL 19

Expert Comment

by:VoteyDisciple
ID: 17881352
I think the gist of mplugjan's suggestion is the right track -- having some separate mechanism for uploading files sounds more appealing than trying to do it within the website.  Now, that doesn't mean it can't be done with software, but a kind of "upload in the background" application might be desirable, perhaps something as simple as an old-fashioned FTP dropbox.

I agree with your thinking that trying to coax the server into sometimes allowing hours-long uploads while still behaving "normally" for other pages on the site just doesn't seem practical.
0
 
LVL 15

Author Comment

by:deepaknet
ID: 17896477
The solution should be an online solution. Hence, I don't think the CD solution befits the perspectives of the problem. However, how about some other related technologies like ISAPI and coexisting the same with the current framework.
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 2

Expert Comment

by:peeldog
ID: 17903139
Your first problem is for how to keep the connection open for long enough to get the transfer done, and your second one for how to resume from where they left off when a connection closes for whatever reason (would suck to get 499Mb then loose your wireless connection for a few secs when uploading).  I'd suggest looking at various transport mechinisms including HTTP and FTP but there may be others like RSYNC or write your own.

One thing I have used in the past is to get the user to upload using ftp, then when they have finished get them to push a button on a webpage that will move or copy the files out of the ftp area and process them as needed.  I also provide a HTTP upload web form too.   If they are using IE, you can provide them with a link in this form:

ftp://[username]:[password]@[domain]

and they will be able to drop the files in to that window (I'm not sure if this works on a mac though).

Good ftp clients may allow you to resume from where you left off.

The only other option I know of would be to write your own client server app.  Not the sort of thing I can cut and paste here.  I don't think using a brower doing HTTP POST will not be reliable enough for 500Mb and multiple files.

Al.

0
 
LVL 75

Expert Comment

by:Michel Plungjan
ID: 17904849
Peeldog: That method with the username:password is alas being discontinued. The last place I have seen it work in in Mozilla
0
 
LVL 15

Author Comment

by:deepaknet
ID: 17953980
I got it through myself using PHP and a judicious balance of configuration using MemoryLimit and PostMaxSize. It works for a good limit of 500 MB.

0
 
LVL 15

Author Comment

by:deepaknet
ID: 17953983
A Delete Request has been raised to CustomerSupport.
0
 
LVL 15

Author Comment

by:deepaknet
ID: 18001302
DarthMod,

The solution is configurable with PHP. With Windows and PHP, you can have the following settings to work upto 100 MB. (max_input_time and maximum_execution_time)

Of course, you need to ensure a correct combination of RAM size tobe allowed besides isolating the application pool.
0
 

Accepted Solution

by:
PashaMod earned 0 total points
ID: 18012804
Closed, 250 points refunded.
PashaMod
Community Support Moderator
0

Featured Post

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When you work with shopping cart / ecommerce relates web sites, you need to pass the certain form post details to the payment gateway process page with required details for the products items you give to order. Also you may need to track the ordered…
JavaScript has plenty of pieces of code people often just copy/paste from somewhere but never quite fully understand. Self-Executing functions are just one good example that I'll try to demystify here.
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
The viewer will learn how to count occurrences of each item in an array.

830 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question