Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17


Ideal way of uploading huge files in ASP.NET

Posted on 2006-11-06
Medium Priority
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?
Question by:deepaknet
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
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
LVL 19

Expert Comment

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.
LVL 15

Author Comment

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.
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Expert Comment

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:


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.


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
LVL 15

Author Comment

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.

LVL 15

Author Comment

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

Author Comment

ID: 18001302

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.

Accepted Solution

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

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Question has a verified solution.

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

I will show you how to create a ASP.NET Captcha control without using any HTTP HANDELRS or what so ever. you can easily plug it into your web pages. For Example a = 2 + 3 (where 2 and 3 are 2 random numbers) Session("Answer") = 5 then we…
Browsers only know CSS so your awesome SASS code needs to be translated into normal CSS. Here I'll try to explain what you should aim for in order to take full advantage of SASS.
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
The viewer will learn how to count occurrences of each item in an array.

670 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