PHPackages                             gaomingcode/jquery.fileupload - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. gaomingcode/jquery.fileupload

ActiveLibrary[File &amp; Storage](/categories/file-storage)

gaomingcode/jquery.fileupload
=============================

File Upload widget with multiple file selection, drag&amp;drop support, progress bar, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads. Works with any server-side platform (Google App Engine, PHP, Python, Ruby on Rails, Java, etc.) that supports standard HTML form file uploads.

10.31.0(4y ago)09MITJavaScript

Since Jun 30Pushed 4y agoCompare

[ Source](https://github.com/gaomingcode/jquery-fileupload)[ Packagist](https://packagist.org/packages/gaomingcode/jquery.fileupload)[ Docs](https://github.com/blueimp/jQuery-File-Upload)[ GitHub Sponsors](https://github.com/blueimp)[ RSS](/packages/gaomingcode-jqueryfileupload/feed)WikiDiscussions master Synced today

READMEChangelog (1)DependenciesVersions (2)Used By (0)

jQuery File Upload
==================

[](#jquery-file-upload)

[![GitHub Version](https://camo.githubusercontent.com/ca0e566bbc49e44b02757fafe19e87cd4988d43641f2e3d39f758c62f5bfb0f7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f67616f6d696e67636f64652f6a71756572792d66696c6575706c6f61642e737667)](https://github.com/gaomingcode/jquery-fileupload)[![Packagist Downloads](https://camo.githubusercontent.com/ea3323845322ff3b040890642c33be03dd0c0a6f5070a8db707130493f08efe3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646d2f67616f6d696e67636f64652f6a71756572792e66696c6575706c6f6164)](https://github.com/gaomingcode/jquery-fileupload)[![Github License](https://camo.githubusercontent.com/ff5cca0428afde27529326d34e803fd6bcece107131f4c04b64d826578c461d6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f67616f6d696e67636f64652f6a71756572792d66696c6575706c6f6164)](https://github.com/gaomingcode/jquery-fileupload)

Installation
------------

[](#installation)

### Composer

[](#composer)

```
composer require gaomingcode/jquery.fileupload

```

ReadMe from Origin
------------------

[](#readme-from-origin)

Contents
--------

[](#contents)

- [Description](#description)
- [Demo](#demo)
- [Features](#features)
- [Security](#security)
- [Setup](#setup)
- [Requirements](#requirements)
    - [Mandatory requirements](#mandatory-requirements)
    - [Optional requirements](#optional-requirements)
    - [Cross-domain requirements](#cross-domain-requirements)
- [Browsers](#browsers)
    - [Desktop browsers](#desktop-browsers)
    - [Mobile browsers](#mobile-browsers)
    - [Extended browser support information](#extended-browser-support-information)
- [Testing](#testing)
- [Support](#support)
- [License](#license)

Description
-----------

[](#description)

> File Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for jQuery.
> Supports cross-domain, chunked and resumable file uploads and client-side image resizing.
> Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.

Demo
----

[](#demo)

[Demo File Upload](https://blueimp.github.io/jQuery-File-Upload/)

Features
--------

[](#features)

- **Multiple file upload:**
    Allows to select multiple files at once and upload them simultaneously.
- **Drag &amp; Drop support:**
    Allows to upload files by dragging them from your desktop or file manager and dropping them on your browser window.
- **Upload progress bar:**
    Shows a progress bar indicating the upload progress for individual files and for all uploads combined.
- **Cancelable uploads:**
    Individual file uploads can be canceled to stop the upload progress.
- **Resumable uploads:**
    Aborted uploads can be resumed with browsers supporting the Blob API.
- **Chunked uploads:**
    Large files can be uploaded in smaller chunks with browsers supporting the Blob API.
- **Client-side image resizing:**
    Images can be automatically resized on client-side with browsers supporting the required JS APIs.
- **Preview images, audio and video:**
    A preview of image, audio and video files can be displayed before uploading with browsers supporting the required APIs.
- **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.
- **Cross-site file uploads:**
    Supports uploading files to a different domain with cross-site XMLHttpRequests or iframe redirects.
- **Multiple plugin instances:**
    Allows to use multiple plugin instances on the same webpage.
- **Customizable and extensible:**
    Provides an API to set individual options and define callback methods for various upload events.
- **Multipart and file contents stream uploads:**
    Files can be uploaded as standard "multipart/form-data" or file contents stream (HTTP PUT file upload).
- **Compatible with any server-side application platform:**
    Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.

Security
--------

[](#security)

⚠️ Please read the [VULNERABILITIES](VULNERABILITIES.md) document for a list of fixed vulnerabilities

Please also read the [SECURITY](SECURITY.md) document for instructions on how to securely configure your Web server for file uploads.

Setup
-----

[](#setup)

jQuery File Upload can be installed via [NPM](https://www.npmjs.com/):

```
npm install blueimp-file-upload
```

This allows you to include [jquery.fileupload.js](js/jquery.fileupload.js) and its extensions via `node_modules`, e.g:

```

```

The widget can then be initialized on a file upload form the following way:

```
$('#fileupload').fileupload();
```

For further information, please refer to the following guides:

- [Main documentation page](https://github.com/blueimp/jQuery-File-Upload/wiki)
- [List of all available Options](https://github.com/blueimp/jQuery-File-Upload/wiki/Options)
- [The plugin API](https://github.com/blueimp/jQuery-File-Upload/wiki/API)
- [How to setup the plugin on your website](https://github.com/blueimp/jQuery-File-Upload/wiki/Setup)
- [How to use only the basic plugin.](https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin)

Requirements
------------

[](#requirements)

### Mandatory requirements

[](#mandatory-requirements)

- [jQuery](https://jquery.com/) v1.7+
- [jQuery UI widget factory](https://api.jqueryui.com/jQuery.widget/) v1.9+ (included): Required for the basic File Upload plugin, but very lightweight without any other dependencies from the jQuery UI suite.
- [jQuery Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js)(included): Required for [browsers without XHR file upload support](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).

### Optional requirements

[](#optional-requirements)

- [JavaScript Templates engine](https://github.com/blueimp/JavaScript-Templates)v3+: Used to render the selected and uploaded files.
- [JavaScript Load Image library](https://github.com/blueimp/JavaScript-Load-Image)v2+: Required for the image previews and resizing functionality.
- [JavaScript Canvas to Blob polyfill](https://github.com/blueimp/JavaScript-Canvas-to-Blob)v3+:Required for the resizing functionality.
- [blueimp Gallery](https://github.com/blueimp/Gallery) v2+: Used to display the uploaded images in a lightbox.
- [Bootstrap](https://getbootstrap.com/) v3+: Used for the demo design.
- [Glyphicons](https://glyphicons.com/) Icon set used by Bootstrap.

### Cross-domain requirements

[](#cross-domain-requirements)

[Cross-domain File Uploads](https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads)using the [Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js)require a redirect back to the origin server to retrieve the upload results. The [example implementation](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/main.js)makes use of [result.html](https://github.com/blueimp/jQuery-File-Upload/blob/master/cors/result.html)as a static redirect page for the origin server.

The repository also includes the [jQuery XDomainRequest Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/cors/jquery.xdr-transport.js), which enables limited cross-domain AJAX requests in Microsoft Internet Explorer 8 and 9 (IE 10 supports cross-domain XHR requests).
The XDomainRequest object allows GET and POST requests only and doesn't support file uploads. It is used on the [Demo](https://blueimp.github.io/jQuery-File-Upload/) to delete uploaded files from the cross-domain demo file upload service.

Browsers
--------

[](#browsers)

### Desktop browsers

[](#desktop-browsers)

The File Upload plugin is regularly tested with the latest browser versions and supports the following minimal versions:

- Google Chrome
- Apple Safari 4.0+
- Mozilla Firefox 3.0+
- Opera 11.0+
- Microsoft Internet Explorer 6.0+

### Mobile browsers

[](#mobile-browsers)

The File Upload plugin has been tested with and supports the following mobile browsers:

- Apple Safari on iOS 6.0+
- Google Chrome on iOS 6.0+
- Google Chrome on Android 4.0+
- Default Browser on Android 2.3+
- Opera Mobile 12.0+

### Extended browser support information

[](#extended-browser-support-information)

For a detailed overview of the features supported by each browser version and known operating system / browser bugs, please have a look at the [Extended browser support information](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).

Testing
-------

[](#testing)

The project comes with three sets of tests:

1. Code linting using [ESLint](https://eslint.org/).
2. Unit tests using [Mocha](https://mochajs.org/).
3. End-to-end tests using [blueimp/wdio](https://github.com/blueimp/wdio).

To run the tests, follow these steps:

1. Start [Docker](https://docs.docker.com/).
2. Install development dependencies: ```
    npm install
    ```
3. Run the tests: ```
    npm test
    ```

Support
-------

[](#support)

This project is actively maintained, but there is no official support channel.
If you have a question that another developer might help you with, please post to [Stack Overflow](https://stackoverflow.com/questions/tagged/blueimp+jquery+file-upload)and tag your question with `blueimp jquery file upload`.

License
-------

[](#license)

Released under the [MIT license](https://opensource.org/licenses/MIT).

###  Health Score

24

—

LowBetter than 35% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1729d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4b333bd44a2f7f526cc29a59b2945b27c7d2f31df68b92c2eb46efbddc032483?d=identicon)[gaomingcode](/maintainers/gaomingcode)

---

Top Contributors

[![blueimp](https://avatars.githubusercontent.com/u/244586?v=4)](https://github.com/blueimp "blueimp (1108 commits)")[![guag](https://avatars.githubusercontent.com/u/4708925?v=4)](https://github.com/guag "guag (3 commits)")[![dougdomeny](https://avatars.githubusercontent.com/u/887297?v=4)](https://github.com/dougdomeny "dougdomeny (3 commits)")[![orhanveli](https://avatars.githubusercontent.com/u/525103?v=4)](https://github.com/orhanveli "orhanveli (2 commits)")[![philayres](https://avatars.githubusercontent.com/u/294874?v=4)](https://github.com/philayres "philayres (2 commits)")[![programmerg](https://avatars.githubusercontent.com/u/10964369?v=4)](https://github.com/programmerg "programmerg (2 commits)")[![bowlofeggs](https://avatars.githubusercontent.com/u/354506?v=4)](https://github.com/bowlofeggs "bowlofeggs (2 commits)")[![ThomasLandauer](https://avatars.githubusercontent.com/u/1054469?v=4)](https://github.com/ThomasLandauer "ThomasLandauer (2 commits)")[![tkleinhakisa](https://avatars.githubusercontent.com/u/1912952?v=4)](https://github.com/tkleinhakisa "tkleinhakisa (2 commits)")[![cvrebert](https://avatars.githubusercontent.com/u/419884?v=4)](https://github.com/cvrebert "cvrebert (2 commits)")[![gaomingcode](https://avatars.githubusercontent.com/u/53959161?v=4)](https://github.com/gaomingcode "gaomingcode (2 commits)")[![hellyeah123](https://avatars.githubusercontent.com/u/23212188?v=4)](https://github.com/hellyeah123 "hellyeah123 (2 commits)")[![Herst](https://avatars.githubusercontent.com/u/1042176?v=4)](https://github.com/Herst "Herst (2 commits)")[![karellm](https://avatars.githubusercontent.com/u/119841?v=4)](https://github.com/karellm "karellm (2 commits)")[![martco](https://avatars.githubusercontent.com/u/420959?v=4)](https://github.com/martco "martco (2 commits)")[![lmartelli](https://avatars.githubusercontent.com/u/4068533?v=4)](https://github.com/lmartelli "lmartelli (2 commits)")[![mattclegg](https://avatars.githubusercontent.com/u/303487?v=4)](https://github.com/mattclegg "mattclegg (2 commits)")[![murilolobato](https://avatars.githubusercontent.com/u/1851400?v=4)](https://github.com/murilolobato "murilolobato (2 commits)")[![zoliszabo](https://avatars.githubusercontent.com/u/9949042?v=4)](https://github.com/zoliszabo "zoliszabo (1 commits)")[![ajcrites](https://avatars.githubusercontent.com/u/1308273?v=4)](https://github.com/ajcrites "ajcrites (1 commits)")

---

Tags

phpfilejqueryuploadpythonwidgetchunkbootstrappreviewprogressmultiplegaedragdropselectioncross-domaincross-siteresumego

### Embed Badge

![Health badge](/badges/gaomingcode-jqueryfileupload/health.svg)

```
[![Health](https://phpackages.com/badges/gaomingcode-jqueryfileupload/health.svg)](https://phpackages.com/packages/gaomingcode-jqueryfileupload)
```

###  Alternatives

[blueimp/jquery-file-upload

File Upload widget for jQuery.

141.5M17](/packages/blueimp-jquery-file-upload)[kartik-v/bootstrap-fileinput

An enhanced HTML 5 file input for Bootstrap 5.x, 4.x, and 3.x with features for file preview for many file types, multiple selection, ajax uploads, and more.

5.4k7.8M13](/packages/kartik-v-bootstrap-fileinput)[kartik-v/yii2-widget-fileinput

An enhanced FileInput widget for Bootstrap 3.x, 4.x &amp; 5.x with file preview, multiple selection, and more features (sub repo split from yii2-widgets)

2356.7M93](/packages/kartik-v-yii2-widget-fileinput)[servocoder/richfilemanager

RichFilemanager - highly customizable open-source file manager

91061.4k2](/packages/servocoder-richfilemanager)[kartik-v/yii2-editors

Editor widgets Yii2 framework. Summernote WYSIWYG editor, Codemirror code editor and PlainText editor for Bootstrap 3.x, 4.x and 5.x.

23292.7k1](/packages/kartik-v-yii2-editors)[wester/chunk-upload

Handle chunked uploads with local and ftp drivers simply in PHP with advanced validation features and localization.

1711.2k](/packages/wester-chunk-upload)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
