当前位置:首页 > 技术分析 > 正文内容

Uppy - 免费开源、功能强大的新一代文件上传组件,支持集成 Vue 项目

Uppy 这个优质的前端组件,可以解决几乎所有的文件上传问题,最近发布了 TS 重写的 4.0 新版本,实用性更强了。

Uppy 简介

Uppy 是一个 UI 外观时尚、模块化的 JavaScript 文件上传组件,这个组件可以与任何 web 技术栈集成,不仅轻量速度快,拥有断点续传、国际化,以及预览、编辑和多文件上传的功能,提供的 API 很容易上手理解,可以帮开发者解决前端开发遇到的各种麻烦的文件上传问题。

uppy 官网

Uppy.js ?

网上不少文章称为 Uppy.js,实际上 .js 后缀一般是作为 JavaScript 工具库的名称,而官方命名的 Uppy,也说明了这是一个拥有 UI 界面的组件,所以我这篇文章还是沿用 Uppy 这个名称吧。

对了,为什么叫 Uppy,其实官方是这样形容这个组件的:

Cute as a puppy.

— 像小狗一样可爱

我个人也非常喜欢这个简单有创意的名字。

Uppy 的技术特性

  • 漂亮新潮的外观,以及基于新一代浏览器打造的优秀体验;
  • 模块化的架构,所有功能都可以通过插件来实现;
  • 支持多种上传方式:包括拖放、选择文件、摄像头捕捉等,能够满足不同场景下的需求;
  • 内置事件管理系统,可以方便地进行上传状态监听和错误处理;
  • 支持多种语言,当然也支持中文。

开发上手体验

4种上传界面

Uppy 虽然只是一个组件,但它提供了四种类型上传界面:

  1. Dashboard :具有预览、进度条、元数据编辑器和所有很酷的东西的通用 UI,适合大而全的文件上传场景;
  2. Progress Bar 进度条:只有一个小巧的进度条,适合用来上传简单小巧的文件;
  3. Status Bar 状态栏:有详细的进度、暂停/恢复/取消按钮、百分比、速度、上传/总大小等信息,适合多文件上传的场景;
  4. Informer 只在上传成功或失败时跳出状态表情的通知,更轻量的展示方式。

我们只需要根据自己项目的需求来选择展示的方式即可。Dashboard 方式除了本地选择文件,还支持远程URL、Google Drive、Dropbox、Box、Instagram 等国外通用方式获取文件。

图片上传列表

上传前编辑

安装使用

Uppy 几乎支持所有的技术栈,官方提供了 Vue / React / Svelte / Angular 项目的集成方式,我们可以根据实际情况去查阅。

Vue 集成

这里为了演示方便,就直接通过引入 js 文件的方式来集成。

<html>
... 
<!-- 1. 引入组件的 CSS 样式 -->
<link href="uppy.min.css" rel="stylesheet">

<!-- 2. 引入js -->
<script src="uppy.min.js"></script>

<!-- 3. 最简单的初始化 -->
<div class="DragDrop"></div>
<script>
  const uppy = Uppy.Core();
  uppy.use(Uppy.DragDrop, { target: '.DragDrop' });
  // endpoint 是文件上传到后端的 api 地址
  uppy.use(Uppy.Tus, { endpoint: 'https//xxx.com/upload/' });
</script>
<html>

这样一个简单的拖拽上传文件的组件就做好了,功能强大,但用起来是真的简单。Uppy 的官方做得也很漂亮,更多的用法可以去官网看看。

用法展示

免费开源说明

Uppy 是一个免费开源的 web 文件上传组件,基于 MIT 开源协议,我们可以自由地下载来使用,也可以用在商业项目上

Uppy 这个项目由 Transloadit 团队开发并且维护,这是一个小的技术团队,除了开源项目,他们也提供了商业服务项目,他们希望通过开源项目帮助更多技术人,同时宣传他们的商业项目。

↓↓点击查看本次分享的网站。

Uppy - 免费开源、功能强大的新一代 web 文件上传组件,支持集成到 Vue 项目|那些免费的砖

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/4019.html

标签: 谷歌vue插件
分享给朋友:

“Uppy - 免费开源、功能强大的新一代文件上传组件,支持集成 Vue 项目” 的相关文章

总结了Vue3的七种组件通信方式,别再说不会组件通信了

写在前面本篇文章是全部采用的<script setup>这种组合式API写法,相对于选项式来说,组合式API这种写法更加自由,具体可以参考Vue文档对两种方式的描述。本篇文章将介绍如下七种组件通信方式:propsemitv-modelrefsprovide/injecteventBusv...

Java教程:gitlab-使用入门

1 导读本教程主要讲解了GitLab在项目的环境搭建和基本的使用,可以帮助大家在企业中能够自主搭建GitLab服务,并且可以GitLab中的组、权限、项目自主操作GitLab简介GitLab环境搭建GitLab基本使用(组、权限、用户、项目)2 GitLab简介GitLab是整个DevOps生命周期...

HTML5最新版本介绍

HTML5是HTML4.01和XHTML1.0之后超文本标记语言的最新版本,由一群自由思想者设计,最终实现了多媒体支持、交互性、更智能的表单和更好的语义标注。 HTML 5不只是 HTML规范的最新版本,它是用于生成现代 Web内容的一系列相关技术的总称,其中最重要的三个技术是:HTML5核心规范...

再来一波黑科技工具,低调使用

静读天下静读天下是一个特别优秀的电子书阅读器。它上面有多个在线书库,像古登堡计划,很多种优秀的书杂志,都可以下载来阅读。它还能智能识别章节功能,还支持外置的语音阅读功能。它支持多种文本格式,比如说txt,pdf,epub,mobi等等。为了便于阅读它还有10 种配色方式,还有夜间模式。不过免费版有广...

JavaScript数组操作:掌握常用方法,提升开发效率

JavaScript数组操作:从增删改查到高级应用本文深入解析JavaScript中常用的数组方法,包括push、unshift、pop、shift、map、filter、reverse、at 和 slice。通过详细的例子和应用场景,帮助开发者快速掌握这些方法,提升代码效率和可读性。开篇点题作为J...

Vue2的16种传参通信方式

前言先直入主题列出有哪些传参方式,下面再通过事例一一讲解。props(父传子)$emit与v-on (子传父)EventBus (兄弟传参).sync与update: (父子双向)v-model (父子双向)ref$children与$parent$attrs与$listeners (爷孙双向)pr...