jQuery File Upload Plugin (by Sebastian Tschan)
Modified For Laravel
Demo
Demo File Upload, (*1)
Description
File Upload widget with multiple file selection, drag&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., (*2)
Setup
Features
-
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.
-
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.
Requirements
Mandatory requirements
The jQuery UI widget factory is a requirement for the basic File Upload plugin, but very lightweight without any other dependencies from the jQuery UI suite., (*3)
The jQuery Iframe Transport is required for browsers without XHR file upload support., (*4)
Optional requirements
The JavaScript Templates engine is used to render the selected and uploaded files for the Basic Plus UI and jQuery UI versions., (*5)
The JavaScript Load Image library and JavaScript Canvas to Blob polyfill are required for the image previews and resizing functionality., (*6)
The blueimp Gallery is used to display the uploaded images in a lightbox., (*7)
The user interface of all versions except the jQuery UI version is built with Bootstrap and icons from Glyphicons., (*8)
Cross-domain requirements
Cross-domain File Uploads using the Iframe Transport plugin require a redirect back to the origin server to retrieve the upload results. The example implementation makes use of result.html as a static redirect page for the origin server., (*9)
The repository also includes the jQuery XDomainRequest Transport plugin, 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 to delete uploaded files from the cross-domain demo file upload service., (*10)
Browsers
Desktop browsers
The File Upload plugin is regularly tested with the latest browser versions and supports the following minimal versions:, (*11)
- Google Chrome
- Apple Safari 4.0+
- Mozilla Firefox 3.0+
- Opera 11.0+
- Microsoft Internet Explorer 6.0+
Mobile browsers
The File Upload plugin has been tested with and supports the following mobile browsers:, (*12)
- 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+
Supported features
For a detailed overview of the features supported by each browser version, please have a look at the Extended browser support information., (*13)
Contributing
Bug fixes and new features can be proposed using pull requests.
Please read the contribution guidelines before submitting a pull request., (*14)
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 and tag your question with blueimp jquery file upload
., (*15)
License
Released under the MIT license., (*16)