Lightweight nodeJS/jQuery File Uploader

Downloads in past


6.0.05 years ago8 years agoMinified + gzip package size for lite-uploader in KB



npm license Build Status
Examples | Changelog
This is a lightweight library for NodeJS and jQuery, aiming to make uploading files a doddle. With some useful options including basic validation, it is a good choice for any developer who is not so worried about supporting legacy browsers.


  • dependency free
  • file type and size validation
  • support for custom validators
  • hooks for all major events like progress, success, fail etc
  • drag/drop support
  • ability dynamically update the form data packet before each upload
  • upload multiple files as individual requests


npm install lite-uploader --save


<script src="./src/liteuploader.js"></script>
jQuery is supported but is optional


<td>String or Function (required)</td>
<td>url that will handle the upload, or a function that resolves with the url</td>
<td>String (required)</td>
<td>the request argument name for the file form data. Will fallback to the name property of the file input field if not supplied.</td>
<td>allows overriding of the default HTTP request method if necessary</td>
<td>object where you can specify validation rules for the files to be uploaded - current supported rules are:
    <li>allowedFileTypes (list of comma-separated mime-types, wildcards such as image/* are also supported)</li>
    <li>maxSize (in bytes)</li>
<td>object of params to be sent to the server in addition to the files being uploaded</td>
<td>object of headers to be sent to the server</td>
<td>an array of functions that can take a File and return a validation result on it, see examples for usage</td>
<td>set to true to upload each file of a selection using an individual request</td>
<td>indicates whether requests should be made using credentials such as cookies</td>
<td>delay the file upload request by returning a promise. Recieves the Files and the FormData. Expected to resolve with the FormData to continue. Reject to stop upload.</td>
<td>when set to false and singleFileUploads is true, dont send the file payload as form data. Also any params added via 'addParam' to form data, will be ignored</td>


<td>eventName, {errors}</td>
<td>triggered when errors are found, including built-in and custom validators - see 'Error Types' section for more</td>
<td>eventName, {files}</td>
<td>triggered before any uploading starts</td>
<td>triggered when all uploading has finished</td>
<td>eventName, {files}</td>
<td>triggered before each request to the server</td>
<td>eventName, {files, percentage}</td>
<td>triggered whilst uploading files</td>
<td>eventName, {files, response}</td>
<td>triggered on a successful request to the server</td>
<td>eventName, {xhr}</td>
<td>triggered on a failed request to the server</td>
<td>triggered on upload abort</td>

Error Types

Below is an overview of the built-in error types that can be returned when validating files
  • type - when file mime type does not match any mime types supplied in the rule.allowedFileTypes option
  • size - when file size is above the size (in bytes) supplied in the rule.maxSize option
  • refRequired - when there is no name attribute on the file input and no 'ref' options is passed to the plugin
  • urlRequired - when no 'url' option is passed to the plugin

Public API


Starts the upload
<td>FileList (optional)</td>
<td>a list of files to be uploaded, takes priority over default mechanism if supplied</td>

addParam(key, value)

Allows parameters to be added after plugin instantiation
<td>String (required)</td>
<td>name of parameter to be added</td>
<td>String (required)</td>
<td>value of parameter to be added</td>


Allows the upload to be cancelled, triggers lu:cancelled
<td colspan="4">No parameters</td>

Browser Support

  • Chrome 45+
  • Firefox 34+
  • Edge 12+
  • Internet Explorer NO (because Promises and Object.assign are used)
  • Safari 9+
  • Opera 32+


Licensed under the MIT License.
View the full license here.