Uploadcare File Uploader
The last file uploader you’ll build
Uploadcare File Uploader is a drop-in widget with storage, processing, and delivery already behind it. Cloud sources, an image editor, and accessibility come built in, with malware and content scanning on top. 15 years in production, across billions of files.
Loading the uploader…
Drag an image onto the uploader
Uploads at any volume
10,000+ engineering teams accept user uploads through Uploadcare, from a single contact form to millions of files a month.
The stack behind a working upload flow
Upload from wherever the file already is
Local files, camera, and a link work out of the box. So do Dropbox, Google Drive, Google Photos and OneDrive, with no OAuth app of your own to register.
Editing built into the widget
Crop, rotate, flip, adjust brightness and exposure, apply filters. Users fix the photo themselves, and your app receives the version they meant to send.
Built for everyone using it
Full keyboard navigation, screen reader and voice assistant support, and current accessibility standards.
Speak your users’ language
Interface text, error messages, and validation warnings are all localizable, with locales you can override or write yourself.
Large files, handled properly
Files up to 5 TB split into chunks, uploaded in parallel, each traveling to the nearest edge location before moving to storage internally.
Make it yours, down to the markup
Style it with your own CSS
Light and dark themes, colour and radius presets, or your own CSS on top. Built from Web Components, so it drops into any framework without adapters.
uc-file-uploader-regular {
--uc-primary:
oklch(0.89 0.13 90);
--uc-radius: 4px;
--uc-font-family:
Inter, sans-serif;
}Use your own interface
Trigger the uploader from your own button with initFlow(), or build a fully custom flow on the upload client library.
const api = document
.querySelector(
'uc-upload-ctx-provider'
)
.getAPI();
myButton.addEventListener(
'click', () => {
api.initFlow();
});Extend it with the Plugin API
Add custom upload sources, UI activities, file actions, and hooks as plugins. The uploader gains what you need without you forking it or waiting on us.
pluginApi.registry
.registerSource({
id: 'dam',
label: 'dam.label',
icon: 'folder',
onSelect() {
uploaderApi
.setCurrentActivity(
'dam'
);
},
});Thousands of companies choose Uploadcare
5% upload failure rate, gone
Aryeo replaced an unstable uploader and moved to reliable high-volume image uploads.
Cloud integrations they never had to write
Upscribe skipped building and maintaining its own Google Drive, Dropbox, and Box connectors.
1.5 GB session recordings, uploaded reliably
Supervision Assist accepts large uncompressed video from HD cameras, with a HIPAA-compliant workflow behind it.

Controls for what your users can upload
- SOC 2 Type II certified
- GDPR compliant
- HIPAA compliant
- Signed uploads and URLs
- Malware scanning
- Content moderation
- Trust center
Everything the uploader ships with
File uploads
Upload from anywhere
Local files, camera, direct link, Dropbox, Google Drive, Google Photos, OneDrive, and more, all through one widget.
Files up to 5 TB
Large files split into chunks and upload in parallel, going straight to storage rather than through Uploadcare’s upload servers.
Multiple file upload
Set the minimum and maximum number of files a user can send in one go.
Drag and drop
Users drop files into the area or pick them from a dialog, whichever suits your layout.
Upload progress
An individual progress bar for every file, so users can see what’s finished and what isn’t.
What users see
Image previews
Users see thumbnails of what they selected before anything is sent.
Built-in image editor
Crop, rotate, flip, adjust brightness and exposure, and apply filters inside the widget.
Accessibility
Keyboard navigation, screen reader and voice assistant support, and current accessibility standards.
Localization
Interface text, errors, and validation messages in the locales you need, with your own overrides.
Build it your way
Drop-in or headless
Add a configurable web component, or hide the default button and trigger the flow from your own UI.
Plugin API
Add custom upload sources, UI activities, file actions, and hooks without forking the uploader.
TypeScript support
Type definitions ship with the packages, with autocompletion and type checking.
CLI for scripting and CI
Upload, manage, and migrate files from the terminal or a build pipeline.
Security and control
File validation
Restrict uploads by type, size, and count before anything reaches your storage.
Signed uploads
Generate signature tokens server-side to control who can upload and for how long.
Malware scanning
Uploads can be scanned for malware, with infected files blocked or flagged.
Content filtering
Unsafe content is flagged, including attempts at remote code execution through SVG, HTML, and XML.
Storage and delivery
Your storage or ours
Keep files in Uploadcare storage, or connect your own S3 bucket.
Global CDN
Files are delivered from edge nodes worldwide, on your own project subdomain.
Processing on the same integration
Image transformations, video streaming, and document conversion run on the files you already uploaded.
Webhooks
Fire custom logic on upload, conversion, or delete. Wire file events into your own flow.



