Basic Chunked Upload

Basic Chunked Upload

Chunked uploading splits large files into smaller pieces and sends them in parallel. Each chunk is independently retryable, so a flaky connection won't restart a 2 GB upload from zero. Enable it with EnableChunkedUpload="true".

Alternatives: for resumable uploads against an external tus server, see the tus 1.0 demo. For direct-to-cloud transfers that skip your server entirely, see S3, Azure Blob, or Google Cloud Storage 5.1. Combine with IndexedDB resume for crash-survival.

Drag & drop files here, or paste from clipboard
How It Works
  1. The file is split into chunks (default 1 MB each)
  2. Each chunk is sent as a separate HTTP request to the chunk URL
  3. The server reassembles chunks in order
  4. Progress is tracked across all chunks for a smooth experience
JavaScript API Equivalent
<au:AjaxFileUpload ID="Uploader1" runat="server"
 EnableChunkedUpload="true"
 ChunkSize="1048576"
 AllowMultiple="true"
 ShowProgress="true" />

// JavaScript API approach
AjaxUploader.create(el, {
 uploadUrl: '/ajaxupload.axd/upload',
 chunkUrl: '/ajaxupload.axd/chunk',
 chunked: true,
 chunkSize: 1048576,
 multiple: true,
 autoUpload: true
});