组件分享之前端组件——文件上传小部件jQuery-File-Upload

2022-05-18 14:18:10 浏览数 (1)

组件分享之前端组件——文件上传小部件jQuery-File-Upload

背景

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

组件基本信息

  • 组件:jQuery-File-Upload
  • 开源协议:MIT license

内容

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

功能

  • 多个文件上传: 允许同时选择多个文件并上传。
  • 拖动,Drop support: 允许从你的桌面或文件管理器拖拽文件,并将它们放到你的浏览器窗口。
  • 上传进度条: 显示一个进度条,显示单个文件的上传进度,也显示所有文件的上传进度。
  • 可取消上传: 可取消单个文件的上传,以停止上传进度。
  • 断点续传: 中断的断点续传可以在支持Blob API的浏览器中恢复。
  • 分块上传: 支持Blob API的浏览器可以将大文件以较小的块上传。
  • 客户端图像调整大小: 图像可以自动调整客户端浏览器支持所需的JS api。
  • 图片、音频、视频预览: 支持支持api的浏览器,支持在上传前预览图片、音频、视频文件。
  • 无需浏览器插件(如Adobe Flash): 实现基于HTML5和JavaScript等开放标准,不需要额外的浏览器插件。
  • 传统浏览器的优雅回退: 通过xmlhttprequest上传文件(如果支持),并使用iframes作为回退。
  • HTML文件上传表单回退: 允许使用标准的HTML文件上传表单作为小部件元素逐步增强。
  • 跨站点文件上传: 支持跨站点xmlhttprequest或iframe重定向上传文件到不同的域。
  • 多个插件实例: 允许在同一个网页上使用多个插件实例。
  • 可定制和可扩展: 提供一个API来设置个人选项和定义各种上传事件的回调方法。
  • 多部分和文件内容流上传: 文件可以按照标准的“多部分/表单数据”或文件内容流(HTTP PUT文件上传)上传。
  • 兼容任何服务器端应用程序平台: 与任何服务器端平台(PHP, Python, Ruby on Rails, Java, Node.js, Go等),支持标准的HTML表单文件上传。

jQuery File Upload 可以通过NPM安装:

代码语言:javascript复制
npm install blueimp-file-upload

这允许您通过 包含jquery.fileupload.js及其扩展node_modules,例如:

代码语言:javascript复制
< script  src =" node_modules/blueimp-file-upload/js/jquery.fileupload.js " > </ script >

然后可以通过以下方式在文件上传表单上初始化小部件:

代码语言:javascript复制
$('#fileupload').fileupload();

强制性要求

  • jQuery v1.7
  • jQuery UI 小部件工厂v1.9 (包括):基本文件上传插件所必需的,但非常轻量级,没有 jQuery UI 套件的任何其他依赖项。
  • jQuery Iframe Transport 插件 (包含): 不支持 XHR 文件上传的浏览器需要。

可选要求

  • JavaScript 模板引擎 v3 :用于渲染选定和上传的文件。
  • JavaScript 加载图像库 v2 :图像预览和调整大小功能所必需的。
  • JavaScript Canvas to Blob polyfill v3 :调整大小功能所必需的。
  • blueimp Gallery v2 :用于在灯箱中显示上传的图像。
  • Bootstrap v3 :用于演示设计。
  • Bootstrap 使用的Glyphicons图标集。
本文声明:

知识共享许可协议

本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

0 人点赞