ASP.NET File Upload

ASP.NET includes support for HTTP file upload. So why would you want to use ABCUpload in conjunction with ASP.NET?

Features

ABCUpload has a far greater range of features and options than the ASP.NET HttpRequest Files collection. The standard Files collection doesn't support progress bars, it doesn't support MacBinary, it doesn't support Unicode. It provides the bare minimum required for uploading files.

Efficiency

ABCUpload is far more efficient than the HttpRequest ASP.NET Files collection for large uploads. Our clients have used ABCUpload for files of up to 500 MB and this is a size that ASP.NET is just not designed to handle.

The graph below shows a trace of CPU and memory use (Percent Committed Bytes) when doing a 50 MB upload using first ABCUpload (1) and then using the ASP.NET HttpRequest Files collection (2).

When ABCUpload is used the amount of time taken is relatively short, the impact on CPU is fairly constant and the amount of memory used is undetectable. The ASP.NET upload takes over twice as long using a variable amount of CPU and increases the percentage of memory used from about 17% up to about 40%.

Conclusion

The ASP.NET upload facility is great for small projects and quick implementation. However in designing your solution you should seriously look at extending basic functionality using a third party component like ABCUpload.

Implementation

ABCUpload will work as part of an ASPX page. However this is not a terribly efficient implementation as ASP.NET will continue to cache the upload in memory whether ABCUpload is handing it or not. For efficient implementation we suggest using ABCUpload .NET.

Notes

Our tests were performed on Windows 2000 Server SP2 with .NET Beta 2 installed. Our server was a Dual Processor PIII 550 MHz with 768 MB RAM. Similar results can be reproduced with .NET RTM - details can be found in the ABCUpload .NET documentation.