文件上传小部件,支持多文件选择、拖放、进度条、验证和预览图像、音频和视频,适用于 jQuery。
支持跨域、分块和可断点续传文件上传以及客户端
图像大小调整。
适用于任何支持标准 HTML 表单文件上传的服务器端平台(PHP、Python、Ruby on Rails、Java、
Node.js、Go 等)。
多文件上传:
允许一次选择多个文件并同时上传。
支持拖放:
允许将文件从桌面或文件管理器拖放到浏览器窗口进行上传。
上传进度条:
显示进度条,指示单个文件和所有上传文件的总上传进度。
可取消上传:
可以取消单个文件上传以停止上传进度。
可续传:
使用支持 Blob API 的浏览器可以续传已中止的上传。
分块上传:
使用支持 Blob API 的浏览器,可以将大文件分成较小的块上传。
客户端图片大小调整:
使用支持所需 JS API 的浏览器,可以在客户端自动调整图片大小。
预览图片、音频和视频:
在支持所需 API 的浏览器上,上传图片、音频和视频文件前可预览。
无需浏览器插件(例如 Adobe Flash):
该功能基于 HTML5 和 JavaScript 等开放标准实现,
无需额外的浏览器插件。
优雅地支持旧版浏览器:
如果支持,则通过 XMLHttpRequest 上传文件,并使用 iframe 作为旧版浏览器的后备方案。
HTML 文件上传表单后备方案:
允许使用标准 HTML 文件上传表单作为小部件元素,
逐步增强功能。
跨站文件上传:
支持使用跨站 XMLHttpRequest 或 iframe 重定向将文件上传到其他域名。
多个插件实例:
允许在同一网页上使用多个插件实例。
可定制且可扩展:
提供 API 用于设置各个选项并定义各种上传事件的回调方法。
分段上传和文件内容流上传:
文件可以作为标准“multipart/form-data”或文件内容流(HTTP PUT 文件上传)上传。
兼容任何服务器端应用平台:
兼容任何支持标准 HTML 表单文件上传的服务器端平台(PHP、Python、Ruby on Rails、Java、
Node.js、Go 等)。
⚠️ 请阅读 VULNERABILITIES 文档,了解已修复漏洞列表
另请阅读 SECURITY 文档,了解如何
安全地配置 Web 服务器以进行文件上传。
jQuery File Upload 可以通过 NPM 安装:
npm install blueimp-file-upload
这样你就可以通过 node_modules
引入 jquery.fileupload.js 及其扩展,
例如:
<script src="node_modules/blueimp-file-upload/js/jquery.fileupload.js"></script>
然后可以通过以下方式在文件上传表单上初始化该小部件:
$('#fileupload').fileupload();
更多信息,请参阅以下指南:
跨域文件上传
使用
iframe Transport 插件
需要重定向回源服务器以检索上传结果。
示例实现
使用
result.html
作为源服务器的静态重定向页面。
该代码库还包含
jQuery XDomainRequest Transport 插件,
该插件可在 Microsoft Internet Explorer 8 和 9 中启用有限的跨域 AJAX 请求(IE 10 支持跨域 XHR 请求)。
XDomainRequest 对象仅允许 GET 和 POST 请求,不支持
文件上传。它在
Demo 中用于从跨域演示文件上传服务中删除已上传的文件。
文件上传插件会定期使用最新浏览器版本进行测试,并
支持以下最低版本:
文件上传插件已使用以下移动浏览器进行测试,并支持以下移动浏览器:
有关每个浏览器版本支持的功能以及已知操作系统/浏览器错误的详细概述,请参阅
扩展浏览器支持信息。
该项目包含三套测试:
要运行测试,请按照以下步骤操作:
npm install
npm test
该项目正在积极维护,但没有官方支持渠道。
如果您有其他开发者可能帮助您解决的问题,请
发帖至
Stack Overflow
并在您的问题中添加“blueimp jquery file upload”标签。
根据 MIT 许可证 发布。