Direct-to-S3 / Azure tus 1.0 resume IndexedDB Golden Retriever 30 locales Webcam & screen capture

CoreUpload vs Dropzone.js

Dropzone.js is one of the best-known drag-and-drop uploaders: small, dependency-free and easy to drop into any page. The two projects aim at different scopes.

The honest summary

Dropzone gives you a beautiful drop target and a simple, well-understood upload flow with very little code. For "let users attach a few files and POST them", that is often exactly the right amount of library.

CoreUpload targets the harder end of the problem: multi-gigabyte files, unreliable connections, resumable transfers, browser-to-cloud uploads, and the ASP.NET Core endpoints that receive them.

Choose Dropzone when the requirement is genuinely a drop zone. Choose CoreUpload when "the upload failed at 80% of a 4 GB file" has to have a good answer.

Scope comparison

Dimension Dropzone.js CoreUpload
Primary aim A lightweight drag-and-drop file input with previews. An end-to-end upload subsystem for ASP.NET Core.
Server side You write the endpoint (and the chunk reassembly if you enable chunking). Endpoints ship with the package via app.MapCoreUploadEndpoints().
Large files Chunking is supported; assembly and resume are your responsibility. Chunked transport with server assembly, plus a server-verified resume probe.
Interrupted uploads Handled in your own code. IndexedDB persistence resumes across a reload; tus for protocol-level resume.
Direct-to-cloud Possible with your own signing endpoint. Built-in S3 multipart, Azure Blob and GCS resumable strategies.
Instant upload (dedupe) Not built in. Opt-in SHA-256 dedupe (instantUpload): content the server already stores completes instantly with zero bytes transferred; the server hashes stored uploads itself.
Blazor JavaScript library - no Blazor component. Ships a native <CoreUploader /> Blazor component (Server + WebAssembly) with typed C# events, in the same NuGet package.
Licensing Open source (MIT). Commercial licence; free on localhost for evaluation.

What you would otherwise build yourself

If you start from a client-only uploader and the requirements grow, this is the list that tends to appear. In CoreUpload each item is shipped and demoed:

Chunk assembly + integrity

Receiving parts, ordering them, verifying which ones actually landed before assembling. Demo

Resume after a reload

Persisting the queue and the bytes, then continuing at the right offset. Demo

Retry that is not naive

Backoff, honouring Retry-After, and not retrying permanent 4xx failures. Demo

Real MIME validation

Magic-byte sniffing, because .jpg in the filename proves nothing. Demo