Implement reusable upload.js with chunking support