blueimp/jquery-file-upload
Composer 安装命令:
composer require blueimp/jquery-file-upload
包简介
File Upload widget for jQuery.
关键字:
README 文档
README
Contents
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.
Demo
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 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
⚠️ Please read the VULNERABILITIES document for a list of fixed vulnerabilities
Please also read the SECURITY document for instructions on how to securely configure your Web server for file uploads.
Setup
jQuery File Upload can be installed via NPM:
npm install blueimp-file-upload
This allows you to include jquery.fileupload.js and
its extensions via node_modules, e.g:
<script src="node_modules/blueimp-file-upload/js/jquery.fileupload.js"></script>
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
- List of all available Options
- The plugin API
- How to setup the plugin on your website
- How to use only the basic plugin.
Requirements
Mandatory requirements
- jQuery v1.7+
- jQuery UI widget factory 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 (included): Required for browsers without XHR file upload support.
Optional requirements
- JavaScript Templates engine v3+: Used to render the selected and uploaded files.
- JavaScript Load Image library v2+: Required for the image previews and resizing functionality.
- JavaScript Canvas to Blob polyfill v3+:Required for the resizing functionality.
- blueimp Gallery v2+: Used to display the uploaded images in a lightbox.
- Bootstrap v3+: Used for the demo design.
- Glyphicons Icon set used by Bootstrap.
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.
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.
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
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
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.
Testing
The project comes with three sets of tests:
- Code linting using ESLint.
- Unit tests using Mocha.
- End-to-end tests using blueimp/wdio.
To run the tests, follow these steps:
- Start Docker.
- Install development dependencies:
npm install
- Run the tests:
npm test
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.
License
Released under the MIT license.
blueimp/jquery-file-upload 适用场景与选型建议
blueimp/jquery-file-upload 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.52M 次下载、GitHub Stars 达 14, 最近一次更新时间为 2013 年 10 月 02 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「file」 「jquery」 「bootstrap」 「upload」 「multiple」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 blueimp/jquery-file-upload 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 blueimp/jquery-file-upload 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 blueimp/jquery-file-upload 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
The file manager intended for using Laravel with CKEditor / TinyMCE / Colorbox
Yii2 LightBox image galary widget uses Lightbox v2.10.0 by Lokesh Dhakar
This is a laravel 4 package for the server and client side of datatables at http://datatables.net/
Laravel Media Popup to upload/view the files
A jQuery augmented PHP library for creating and validating HTML forms
PMVC Plugin for File information
统计信息
- 总下载量: 1.52M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 29
- 点击次数: 32
- 依赖项目数: 25
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2013-10-02