jQuery File Upload widget with multiple file selection, drag&drop support, and progress bars, based on jQuery File Upload.
Feature List
Multiple file upload - Allows to select multiple files at once and upload them simultaneously.
Drag & Drop support - Allows to upload files by dragging them from your desktop or filemanager and dropping them on your browser window.
Chunked uploads - Large files can be uploaded in smaller chunks with browsers supporting the Blob API.
Upload progress bar - Shows a progress bar indicating the upload progress for individual files and for all uploads combined.
Multiple file handler options - by default files and temporary chunks are stored in the temp folder of the front-end handling the request. Included is also an alternative option that stores those chunks in the DB for scenarios with multiple front-ends. As a third alternative, one can always customize the file handler and store files in different medium formats - ex. dropbox, shared folder, etc... Check the demo app for more details.
Main Benefits
No browser plugins (e.g. Adobe Flash) required - The implementation is based on open standards like HTML5 and JavaScript and requires no additional browser plugins.
Graceful fallback for legacy browsers - Uploads files via XMLHttpRequests if supported and uses iframes as fallback for legacy browsers.
HTML file upload form fallback - Allows progressive enhancement by using a standard HTML file upload form as widget element.
System Requirements and Limitations
Requires Extension FileSystem
DISCLAIMER: By default, the component uses a built-in file handler that stores the chunks and the finalised files in the temp folder of the front-end handling the request. Given a scenario with multiple front-ends this will become obviously a problem. To solve that, the component allows the creation of a custom file handler that handles the chunks using a different mechanism. We can be seen in the demo app, there is also a DBFileHandler, that in this case stores the files in a temporary database table. In any case, don't forget to periodically delete any files or in-completed chunks stored in the server.
Removed HtmlUtils extension and added it as a reference to the HtmlUtils component. Related to
https://www.outsystems.com/forums/discussion/27357/conflict-with-htmlutils/