Folder drops and directory-picker selections carry each file's relative path through the upload and expose it server-side as e.RelativePath (traversal-sanitized), so your handler can recreate the tree. Opt-in instant upload hashes the file with SHA-256 and completes with zero bytes transferred when the server already stores that content. Upgraded 4.x pages post back automatically again, so FileUploaded fires with no submit button.
Headline
Companion broker
A self-hosted Node/Express OAuth and file-proxy broker (multipleupload/server/companion), modeled on Uppy Companion, with zero new dependencies. Provider client secrets and access tokens stay server-side and never reach the browser. Built-in Dropbox, Box, Google Drive, OneDrive. HMAC-signed OAuth state for CSRF, pluggable token store.
Companion
Two transfer modes
proxy streams broker to browser to upload; server-to-destination streams remote to broker to S3 or disk so the bytes never touch the browser. Built-in fileSystemDestination.
Cloud sources
6 built-in sources
Google Drive, Dropbox, OneDrive, Box (now first-class), Unsplash (search and import, no OAuth popup), and the Companion broker. Each routes into the existing URL-import pipeline.
Headless
Framework hooks
useUploader() for React and Vue, a use:uploader action for Svelte, and an UploaderService for Angular return { files, progress, status, addFiles, upload } so teams build a fully custom UI.
Image editor
Smart-crop, overlays, filters
Content-aware smart-crop (edge-energy focal point, no ML), draggable text and sticker overlays, brightness/contrast/saturation/sepia/grayscale sliders with presets (Mono, Sepia, Warm, Cool, Vivid), an EXIF info panel, and crop-ratio quick-pick chips.
Image output
AVIF + WebP output
Export to AVIF or WebP with a quality slider and graceful AVIF to WebP to JPEG fallback. Plus EXIF auto-rotate on upload, PDF poster thumbnails in the queue, HEIC decode, and URL-based transforms via transformUrl().
UX
Rename, restore, full-page drop
Per-file rename UI (click a filename to edit), a restore prompt that offers to resume incomplete uploads, a whole-page drop target with form auto-attach, and locale auto-detect from navigator.language.
Accessibility
ARIA live regions + WCAG
ARIA live-region announcements for file added, uploaded, and error events, reduced-motion CSS, and modal focus traps. New standalone aspectRatio validator.
.NET
IImageTransformer extension point
URL-based transforms are honored server-side: in the Web Forms handler via GDI+, and in CoreUpload via a pluggable IImageTransformer. Reflective IS3Signer / IAzureSigner / IGcsSigner DI unchanged.