Managed Hosting



Project Home Known Issues Screenshots External Project Link Contact Project

Author: Ben Garrett (All RIAForge projects by this author)
Last Updated: August 17, 2014 5:23 PM
Views: 12,313
Downloads: 635
License: MIT


The HTML5 input multiple Attribute is not correctly handled by ColdFusion/Railo's cffile action = 'uploadAll' tag or the FileUploadAll functions. This application uses JavaScript to correct the form file submission without the need of library dependancies such as JQuery.

The application comes with 3 primary files plus a customized version of BootStrap for some basic HTML5 theming.

upload.html A standard HTML5 file upload form. One important difference is it uses a JavaScript onclick event to submit the form.

submit.cfm A typical CFML page that uses the cffile action = 'uploadAll' to receive and save file uploads to the server.

submit.js Is where the magic happens. It uses XMLHttpRequest to submit the form to the server and handle any responses returned by the server.

When the upload.html Upload files! button is clicked a submit.js startUpload() function is triggered. It has the content of the form passed to it and analyses that content. The function creates a new internal form using the web browser's FormData API and fills it in using the data sourced from the submitted form. Most importantly it creates a new collection of field-names that are compatible with the CFML cffile action = 'uploadAll' tag and the FileUploadAll function.

The startUpload() function POSTs the FormData API generated form to submit.cfm using the in-browser XMLHttpRequest() function. submit.cfm treats the POST as a typical form and handles it with the cffile action = 'uploadAll' tag. All errors or success messages created by submit.cfm are returned to web browser as HTML tags sent over HTTP. These replies are handled by XMLHttpRequest events contained in submit.js. The events use JavaScript to update the HTML DOM which refresh the client web browser with the updated HTML tags.

Please see the README.MD for further information.


ColdFusion, Railo or CFML compatible server that supports the cffile action = 'uploadAll' tag or the FileUploadAll function.

A client web browser that supports HTML5, XMLHttpRequest Level 2 and the FormData API. (Browser compatibility http://caniuse.com/xhr2)

A client web browser that has JavaScript turned on.

Issue Tracker:

This project has an external bug tracker. You can find it here: