v5.1 . For ASP.NET Web Forms On ASP.NET Core? Use CoreUpload ->

Modern file uploads,
built for production.

AjaxUploader is a drop-in server control for ASP.NET Web Forms. 7 transport strategies (chunked, tus 1.0, direct-to-S3 / Azure / GCS, URL import), 4 cloud-source pickers (Drive, Dropbox, OneDrive, Box), AES-GCM encryption-at-rest, offline-mode queueing, inline image annotation, HEIC auto-convert, virus-scan hook, and 30 built-in locales - all configurable from your .aspx page.

Explore 119 Demos Download Package
15,000+
Licensed teams worldwide
20+
Years in production
101
Ready-to-run demos included
Drop zone
AjaxUploader drag and drop demo
Custom queue
AjaxUploader custom queue demo

Real screenshots from the 119 demos shipped with AjaxUploader 5.1.

Core capabilities

An upload toolkit, not a file input replacement.

One server control with pluggable transport, production-grade resume, and a client-side editor. Built so you can ship without writing XHR glue yourself.

7 pluggable strategies

Single POST, server-side chunked, direct-to-S3 multipart, direct-to-Azure Blob, direct-to-GCS resumable, tus 1.0, and server URL import - all via one Strategy property. Swap transports without rewriting your upload flow.

Direct-to-cloud (S3 / Azure / GCS)

Browser uploads straight to S3 (AWS/MinIO/B2/R2/Wasabi), Azure Blob, or Google Cloud Storage via your server's presigned URLs. Your server never sees the bytes - just signs.

IndexedDB-backed resume

Uploads survive tab crashes and page reloads. Per-chunk offsets, S3 part ETags, and tus session URLs persist locally; the resumed task continues from where it stopped instead of re-uploading.

Parallel chunks + Web Worker hashing

Configurable chunk concurrency keeps the pipe full. SHA-256 and CRC32 run off the main thread so the UI stays responsive even on multi-gigabyte files.

Inline image editor

Rotate +/-90 deg, flip, and interactive crop with 8 drag handles - optional aspect-ratio lock. Pair with client-side resize and compression before upload.

Server-side URL import

Paste a URL; the server fetches it and streams through your provider - with NDJSON progress events so the UI gets live feedback during the fetch.

Drag-and-drop + folder drop

Styled drop zones, full-page drop overlay, folder traversal, and clipboard paste. A single API handles all input sources.

Multi-layer validation

Extensions, MIME types (including magic-byte sniffing), file sizes, image dimensions, duplicate detection, and custom rules - enforced client-side before bytes leave, and re-checked server-side on arrival.

Smooth progress + ETA

Sliding-window speed average, per-file and overall progress, configurable retryPolicy with custom backoff, pause/resume/cancel per task, and a rich event model for custom UIs.

New in 5.1

4 cloud-source pickers

Built-in OAuth pickers for Google Drive, Dropbox, OneDrive, and Box. Files flow into the existing server-side URL import - bytes go straight from the cloud to your provider, with NDJSON live progress.

New in 5.1

Encryption-at-rest (AES-GCM)

Files encrypted client-side with AES-GCM-256 + PBKDF2 (200k iter) before any byte leaves the browser. Your server only ever sees ciphertext - HIPAA / GDPR compliance baked in. Unique among major upload components.

New in 5.1

Offline-first queueing

Drop files with no network; they queue to IndexedDB. When the connection returns, uploads auto-resume from byte zero (or the last persisted chunk for chunked / S3 / GCS / tus). Pair with a Service Worker for background sync.

New in 5.1

Inline annotation + HEIC + presets

Slack-style markup (pen, arrow, rect, text, blur-redact, eraser) before upload. iPhone HEIC auto-converts to JPEG. 5 image presets bundle resize + crop + auto-orient + compress for avatars, thumbnails, web banners, documents, social cards.

New in 5.1

Pre-upload virus scan + /scan endpoint

One virusScan hook integrates ClamAV, VirusTotal, or Microsoft Defender. Rejected files never reach storage. The companion /scan server endpoint in multipleupload/server is a one-line plug-in for Node hosts.

New in 5.1

Cross-tab + multi-tab dashboard

BroadcastChannel coordination prevents the same file uploading twice across tabs. A "manager" tab can aggregate progress from every sibling tab via subscribeAllTabs(). Unique among major upload components.

30 locales

30 built-in locales (incl. RTL)

EN, ES, FR, DE, JA, ZH-CN, PT-BR, IT, NL, RU, PL, TR, KO, CS, VI, TH, ID, HI, SV, NO, DA, FI, HU, RO, BG, EL, BN, UK, plus AR and HE with right-to-left layout. registerLocale() for the long tail.

Quick start

Drop the server control onto a page

<%@ Register Assembly="AjaxUploader" Namespace="AjaxUploader.Controls" TagPrefix="au" %> 
<au:AjaxFileUpload ID="Uploader1" runat="server"
 AllowMultiple="true"
 AllowedExtensions=".jpg,.png,.gif,.pdf,.docx"
 MaxFileSize="500MB"
 AutoUpload="true"
 EnableDropZone="true"
 Strategy="chunked"
 ChunkConcurrency="4"
 PersistState="true"
 PersistAdapter="indexeddb" />

Evaluate locally

No license key needed for development.

Download the package, open in Visual Studio, and start testing immediately. All 119 demos run on localhost without a license. You only need a license file when you deploy to a production domain.

Switch strategies at runtime

Single API, six transports.

Set Strategy="s3" for direct-to-S3 multipart, "tus" for Uppy/tusd interop, or "azure" for Azure Blob - same control, same events.

What's new in v5

A pluggable core, shared across three products.

Version 5 is a full-family rewrite. AjaxUploader, CoreUpload (ASP.NET Core), and MultipleUpload (standalone JS) all ship from a single canonical JS source - the same strategies, resume, editor, and hashing code, branded per product. Server controls are thin shells over a shared wire protocol.

Strategies

six built-in: single, chunked, s3, azure, tus, urlImport. Register your own.

Resume

IndexedDB persistence plus auto-rehydrate. All resumable strategies (chunked, s3, tus) continue mid-upload after reload.

Image editor

Rotate, flip, interactive crop (8 handles, aspect lock). Layered on the existing resize / compress / watermark pipeline.

Web Workers

SHA-256 and CRC32 run off-thread. Gigabyte hashing no longer blocks the UI, with a CSP-safe main-thread fallback.

NDJSON streaming

URL import emits live progress events (SSE-style). Client parses newline-delimited JSON from a streaming fetch.

4.x compat

CuteWebUI namespace shims let legacy pages compile unchanged. Migrate at your own pace.

Download package

Everything to evaluate, deploy, or upgrade.

The package includes Web Forms binaries, 101 working demos, class reference documentation, deployment notes, and upgrade guidance for older 4.x projects.

Runtime

Embedded assets

JS and CSS are embedded in AjaxUploader.dll and served through ajaxupload.axd. No NuGet restore for the client.

Demos

101 working demos

Open a ready-to-run sample project instead of reconstructing features from isolated code snippets.

Compatibility

4.x migration

Keep older CuteWebUI pages compiling while moving toward native v5 controls at your own pace.

Licensing

Friction-free dev

Localhost bypasses license detection. Install ajaxuploader5.lic for production.

Uploader family

Same core, every stack.

All three products ship from one canonical JavaScript source with a shared wire protocol - pick the server flavor for your application.