New
- Large-file mode: new `KeepFileInMemory` input (default `True`). Set it to `False` to stream files straight from disk, which makes multi-GB uploads possible.
- Chunked uploads: new `ChunkSizeMB` input (default `0` = single request). Useful behind proxies or load balancers that limit request size.
- Automatic resume: interrupted uploads continue from the last uploaded byte, even after a page reload. New `AskBeforeResume` input (default `False`) brings back the old prompt.
- File type validation: the `accept` list is now checked again before the upload starts.
- Accessibility: the progress bar exposes ARIA values and the status text is announced to screen readers.
Security
- `GetFileBy_tusURL` now accepts only `http(s)` URLs. A new site property, `AllowedDownloadBaseURL`, limits downloads to your tus server (prevents SSRF). Disallowed URLs raise the new `InvalidTusURL` exception.
- Removed the default dummy `Authorization` header (`Header` is now empty by default).
Fixes
- Abort now resets the progress bar.
- Error events now include the real error message.
- Selecting a new file stops the previous upload instead of running both in parallel.
- Uploads stop cleanly when the block is destroyed (they stay resumable).
- An empty `Header` no longer causes an error.
- `MaxFileSize = 0` now means "no limit" (the input is now optional).
- Replaced the blocking browser prompt with automatic resume.
Performance
- `onProgress` now fires only when the whole percentage changes, not on every chunk.
- Completed uploads are removed from browser storage.
Demo App
- Redesigned the demo with a modern glassmorphism UI (class-based CSS, responsive, dark theme).
- Live upload status, a progress counter and Pause / Resume / Abort buttons that enable based on the upload state.
- Downloads are restricted server-side to the demo tus server (`TusEndpoint` site property).
- New "Open file directly" link for large files (HTTPS URLs only).
- The demo runs in large-file mode.
Upgrade Notes
- Backward compatible: no existing inputs, events or actions were renamed or removed.
- Set `AllowedDownloadBaseURL` in every environment (e.g. `https://your-tus-server/files/`, ending with `/`).
- Resume behaviour: previous uploads now resume automatically. Set `AskBeforeResume = True` to keep the old prompt.
- Large-file mode: with `KeepFileInMemory = False`, `onSuccess.File` is empty; use `upload_url` instead.
- Large downloads: `GetFileBy_tusURL` loads the whole file into server memory. For large files, give users the tus URL directly.
- Demo server: `tusd.tusdemo.net` is public and for testing only. Use your own tus server in production.
Resumable Upload Support
Added logic to detect and list previous incomplete uploads using findPreviousUploads().
findPreviousUploads()
Introduced a user prompt to resume a previously interrupted upload session using resumeFromPreviousUpload().
resumeFromPreviousUpload()
This allows seamless continuation of large file uploads after network interruptions or page reloads.