Deployment
MultipleUpload is a static JavaScript bundle plus whatever backend you already run — deployment is mostly about putting three files in the right place.
1. Ship the runtime
From the download package's dist/ folder:
dist/multipleupload.js // the runtime (obfuscated production build)
dist/multipleupload.css // default styles
dist/multipleupload.d.ts // TypeScript definitions (dev-time only) Serve them like any static asset — your web server, your bundler's static pipeline, or your CDN. There are no runtime dependencies to install alongside.
2. Place the licence
localhost, 127.0.0.1 and ::1 never need a licence — develop freely. For production domains, deploy multipleupload.lic alongside the runtime so it resolves at ./multipleupload.lic relative to the script.
3. Point it at your backend
new MultipleUpload('#uploader', {
uploadUrl: '/api/upload', // your endpoint
chunked: true,
chunkSize: 5 * 1024 * 1024
}); The backends section has reference implementations — including the Node middleware shipped in the npm package (multipleupload/server) with single, chunked and chunk-status routes.
Pre-launch checklist
- Body-size limits. Your server/proxy must accept at least one chunk (
chunkSize+ form overhead), not the whole file. - Temp storage. Chunk staging needs writable disk and a cleanup job for abandoned sessions.
- HTTPS. Required for webcam/screen capture, and for crypto APIs used by hashing and encryption-at-rest.
- Server-side validation. Client checks are UX; enforce size/type limits again at the endpoint.
- Resume verification. If you enable
persistState, implement the chunk-status route so resumes reconcile with the server. Demo. - CORS. Cross-origin API or direct-to-cloud bucket? Allow your origin, methods, headers — and expose
ETagfor S3 multipart.