bunkerdb/jquery-file-upload

jQuery的文件上传服务器端插件。

10.0.1 2016-02-19 15:49 UTC

README

演示

文件上传演示

描述

jQuery的多文件选择、拖放支持、进度条、验证和预览图片、音频和视频文件上传小部件。
支持跨域、分块和可恢复的文件上传,以及客户端图像调整大小。适用于任何支持标准HTML表单文件上传的服务器端平台(PHP、Python、Ruby on Rails、Java、Node.js、Go等)。

配置

特性

  • 多文件上传
    允许一次选择多个文件并同时上传它们。
  • 拖放支持
    允许您通过将文件从桌面或文件管理器拖动到浏览器窗口来上传文件。
  • 上传进度条
    显示进度条,指示单个文件和所有上传的组合上传进度。
  • 可取消上传
    可以取消单个文件的上传以停止上传进度。
  • 可恢复上传
    可以通过支持Blob API的浏览器恢复中断的上传。
  • 分块上传
    支持将大文件以更小的块上传,适用于支持Blob API的浏览器。
  • 客户端图像调整大小
    支持在客户端自动调整图像大小,适用于支持所需JS API的浏览器。
  • 预览图像、音频和视频
    在上传之前,可以显示图像、音频和视频文件的预览,适用于支持所需API的浏览器。
  • 无需浏览器插件
    实现基于HTML5和JavaScript等开放标准,无需任何额外的浏览器插件。
  • 对旧版浏览器的优雅降级
    如果支持,通过XMLHttpRequest上传文件,并使用iframe作为旧版浏览器的后备。
  • HTML文件上传表单降级
    允许使用标准HTML文件上传表单作为小部件元素进行渐进式增强。
  • 跨站文件上传
    支持使用跨站XMLHttpRequest或iframe重定向将文件上传到不同域名。
  • 多个插件实例
    允许在同一页面上使用多个插件实例。
  • 可定制和可扩展
    提供API来设置单个选项,并为各种上传事件定义回调方法。
  • 多部分和文件内容流上传
    文件可以以标准的"multipart/form-data"或文件内容流(HTTP PUT文件上传)的形式上传。
  • 与任何服务器端应用平台兼容
    适用于任何支持标准HTML表单文件上传的服务器端平台(PHP、Python、Ruby on Rails、Java、Node.js、Go等)。

要求

必需要求

jQuery UI小部件工厂是基本文件上传插件的要求,但非常轻量级,不依赖于jQuery UI套件中的任何其他依赖项。

jQuery Iframe Transport是对于没有XHR文件上传支持的浏览器的必需要求。

可选要求

JavaScript模板引擎用于渲染Basic Plus UI和jQuery UI版本的选定和上传文件。

JavaScript Load Image库和JavaScript Canvas to Blob polyfill对于图像预览和调整大小功能是必需的。

blueimp Gallery用于在相册中显示上传的图像。

除jQuery UI版本外,所有版本的用户界面均使用BootstrapGlyphicons图标构建。

跨域要求

使用Iframe Transport插件进行跨域文件上传需要重定向回原始服务器以检索上传结果。示例实现使用result.html作为原始服务器的静态重定向页面。

存储库还包括jQuery XDomainRequest Transport插件,它允许Microsoft Internet Explorer 8和9(IE 10支持跨域XHR请求)进行有限的跨域AJAX请求。
XDomainRequest对象仅允许GET和POST请求,不支持文件上传。它在演示中用于从跨域演示文件上传服务中删除上传的文件。

浏览器

桌面浏览器

File Upload插件定期与最新浏览器版本进行测试,并支持以下最低版本

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

移动浏览器

File Upload插件已与以下移动浏览器进行测试并支持

  • iOS 6.0+上的Apple Safari
  • iOS 6.0+上的Google Chrome
  • Android 4.0+上的Google Chrome
  • Android 2.3+上的默认浏览器
  • Opera Mobile 12.0+

支持的功能

有关每个浏览器版本支持的详细功能的概述,请参阅扩展浏览器支持信息

贡献

可以使用pull requests提出错误修复新功能。在提交pull request之前,请阅读贡献指南

支持

该项目正在积极维护,但没有官方支持渠道。
如果您有一个可能由其他开发者帮助解答的问题,请将其发布到Stack Overflow,并使用blueimp jquery file upload标签您的提问。

许可

MIT许可下发布。