jQuery File Upload Plugin
演示
演示地址
说明
本jQuery插件支持多文件上传,拖拽文件上传,进度条,预览图片、视频和音频。
支持跨域上传,分块上传和可恢复的文件上传和客户端图像调整。可以在支持标准HTML表单文件上传的所有服务端平台工作,包括PHP, Python, Ruby on Rails, Java, Node.js, Go等等。
安装
技术支持
-
Support Forum
使用过程产生的问题和关于本插件的讨论可以发到 Support Forum
如果你的问题和本插件关系不大,你在Stack Overflow提问可能会得到更好的回应。
-
Bugs反馈和新特性
Bugs反馈和请求新特性可以使用issues tracker.
在发帖前请先阅读issue guidelines
特性
多文件上传:
允许一次选择多个文件并同时上传到服务器支持拖拽文件上传:
允许你从桌面或者文件夹直接拖拽要上传的文件到浏览器上传。上传进度条:
进度条显示单个文件或者所有文件上传进度情况。可撤销上传:
可以撤销单个文件的上传。可恢复上传:
如果浏览器支持Blob API,被打断的上传可以恢复上传。分块上传:
如果浏览器支持Blob API,大文件可以分成几个小块文件上传。客户端图像调整:
如果浏览器支持所需要的Javascript API,在客户端可以自动调整图片的大小。预览图像,音频和视频:
如果浏览器支持所需要的Javascript API,在上传服务器之前可以预览图像,音频和视频。不需要浏览器插件(例如Adobe Flash):
本插件的实现是基于开放标准的HTML5和JavaScript,因此不需要额外的插件。浏览器优雅降级:
如果浏览器支持xmlhttprequest,文件通过xmlhttprequest上传到服务器,否则传统浏览器通过iframes上传文件。HTML文件表单上传渐进增强:
允许通过使用一个标准的HTML文件上传表单以部件元素的方式渐进增强。跨域文件上传:
支持跨站点xmlhttprequest或者iframe重定向的方式跨域上传文件多次插件使用:
允许在一个网页使用多次插件可定制和可扩展:
提供了一系列API来设置各个选项,为各种上传事件定义回调方法。multipart和文件内容流上传:
文件可以以标准的”multipart/表单数据”或文件内容流(以HTTP PUT方式上传文件)兼容任何服务器端应用程序平台:
可以在支持标准HTML表单文件上传的所有服务端平台工作,包括PHP, Python, Ruby on Rails, Java, Node.js, Go等等。
环境需求
强制要求:
- jQuery v. 1.6+
- jQuery UI widget factory v. 1.9+ (包括)
- jQuery Iframe Transport plugin (包括)
The jQuery UI widget factory的存在是出于本插件最基本的需要,但是它非常轻量级,并不依赖于 jQuery UI套件。
The jQuery Iframe Transport的存在是出于那些不支持XHR方式上传文件的浏览器的需要。
可选的要求:
- JavaScript Templates engine v. 2.5.3+
- JavaScript Load Image library v. 1.11.0+
- JavaScript Canvas to Blob polyfill v. 2.1.0+
- blueimp Gallery v. 2.12.0+
- Bootstrap CSS framework v. 3.0.0+
- Glyphicons
The JavaScript Templates engine是为了呈现Basic Plus UI版本和jQuery UI版本的被选择和上传的文件样式。
The JavaScript Load Image library 和 JavaScript Canvas to Blob polyfill 的存在是出于实现图像预览和调整功能的需要。
The blueimp Gallery 用来显示在lightbox已上传的图片
所有版本的用户界面除了jQuery UI的版本是建立在Twitter的Bootstrap CSS framework和Glyphicons 的基础上。
跨域要求:
Cross-domain File Uploads使用Iframe Transport plugin需要一个重定向到源服务器获取上传结果。示例中利用result.html作为源服务器的静态重定向页面。
仓库里还有 jQuery XDomainRequest Transport插件,该插件可以去掉Microsoft Internet Explorer 8 and 9 的跨域 AJAX请求限制 (IE 10支持跨域 XHR 请求)。
XDomainRequest对象仅允许GET和POST请求,不支持文件上传。它是用于Demo删除上传的文件从跨域演示文件上传服务。
浏览器
桌面浏览器
本插件做了定期测试以保证兼容最新的浏览器版本和以下常用最低的浏览器版本:
Google Chrome
Apple Safari 4.0+
Mozilla Firefox 3.0+
Opera 11.0+
Microsoft Internet Explorer 6.0+
手机浏览器
本插件经过测试,兼容以下手机浏览器版本:
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+
支持的功能
想知道每个浏览器支持的功能详情请看浏览器支持信息延伸阅读.
许可证
在MIT 许可证下发布.
原文地址
译者:m_cat
(PS:第一次翻译技术文章,如有不对之处或者对于翻译你有更好的建议,欢迎联系我。)