Learn · v5.3

How file uploads work in ASP.NET Web Forms.

Concepts and problem-solving rather than product tours: the limits that break large uploads, the failures that are hard to diagnose, the rules that keep uploads safe, and what changes when you move to ASP.NET Core. Useful whether or not you use AjaxUploader.

Uploading large files in Web Forms

The four limits that stop big uploads — maxRequestLength, maxAllowedContentLength, executionTimeout and proxy timeouts — why raising them is not enough, and how chunking removes the problem instead of moving it.

Folder uploads that keep their structure

webkitdirectory and drag-and-drop traversal, where the folder tree gets lost, and recreating it safely in FileUploaded with the sanitized e.RelativePath.

Troubleshooting Web Forms uploads

404.13, "maximum request length exceeded", uploads that die at exactly 100%, chunks that fail while single uploads work, files that vanish, and postbacks that eat the queue — symptom to cause.

Securing uploads

Extension allowlists, storage outside the web root, server-generated file names, MIME magic-byte checks, antiforgery on every request, and resource limits that are enforced while writing.

Drag and drop uploads

A drop zone that also accepts folders, clipboard pastes and keyboard input — and why cancelling dragover is the step everyone misses.

Image uploads and thumbnails

Confirming an upload is a real image rather than a renamed file, resizing on the server, keeping transparency, and stripping EXIF before storage.

Migrating uploads to ASP.NET Core

Handlers become endpoints, server events become DI-registered handlers, and Web.config limits become typed options. Plus how to run both stacks side by side without a data migration.

<asp:FileUpload> vs AjaxUploader

What the built-in control does well, the four places teams outgrow it, and what a migration actually looks like.

<asp:FileUpload> reference

Every member of the built-in control, the accept attribute it has no property for, and the size ceiling.

Looking for code rather than concepts? The demo gallery is runnable, the how-to guides are scenario-based, and the class reference documents every property and event.