Skip to content


Subversion checkout URL

You can clone with
Download ZIP
It is a simple plugin for jQuery, which helps you to upload multiple files and to show progress of uploading.
Pull request Compare This branch is 8 commits behind mihaild:master.
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


HTML5 allows attribute multiple in input tag. It is possible to select multiple files in one dialog without flash. With this plugin, you can easy upload multiple files and display progress of uploading. Works in modern versions of Firefox and WebKit browsers. Wasn't tested in IE.

This plugin is very simple. I think, everything is clean from it's source. But if you want to have a list of it's options - they are presented below.



All events except "change" used by plugin have prefix "html5_upload.".

Events used by plugin

It is not recommended to set handlers for this events manual.

start Start upload selected files

cancelOne Cancel upload of currently uploading file

cancelAll Cancel current uploading

destroy Removes traces of plugin work

On* events

This events can be set by passing it to plugin constructor. When presented, name if the current file name, number is the number of current file, total is count of currenly selected files.

onStart(event, total) Called when starting upload files.

onStartOne(event, name, number, total) Called when a file begins uploading.

onProgress(event, progress, name, number, total) Called when a progress part of file (0 <= progress <= 1) was uploaded.

onFinishOne(event, response, name, number, total) Called when one file was uploaded. response is the server response.

onFinish(event, total) Called when all files was uploaded.

onError(event, name, error) (not fully implemented yet) Called when XMLHttpRequest has an error.

gen* and set* options

Sometimes you need no full control on all plugin events. If so, you can pass the gen* and set* functions to automatically set messages.

gen* functions

By default, they use STATUSES option to generate the text.

genName(file, number, total)

genStatus(progress, finished) progress is a fraction. finished is true if file uploaded and response otained.

genProgress(loaded, total) loaded is count of bytes of current file which currently loaded, total is current file size.

set* function

This functions get plain text from set* functions




Other options

autostart (bool) start when the input value is changed

autoclear (bool) clear the input value when all files are uploaded

stopOnFirstError (bool) cancel uploading remaining files if an error occurred

url (string|function) url where send files, or function which will return it

sendBoundary (bool) format headers to emulate usual form file sending.

fieldName (string|function) if setBoundary is true, value for file field name

Something went wrong with that request. Please try again.