Uppy 是一款简洁、模块化的 JavaScript 文件上传器,可与任何应用程序无缝集成。它速度快,API 通俗易懂,让您可以专注于构建文件上传器之外更重要的问题。

Code used in the above example:
import Uppy from '@uppy/core'
import Dashboard from '@uppy/dashboard'
import RemoteSources from '@uppy/remote-sources'
import ImageEditor from '@uppy/image-editor'
import Webcam from '@uppy/webcam'
import Tus from '@uppy/tus'
const uppy = new Uppy()
.use(Dashboard, { trigger: '#select-files' })
.use(RemoteSources, { companionUrl: 'https://companion.uppy.io' })
.use(Webcam)
.use(ImageEditor)
.use(Tus, { endpoint: 'https://tusd.tusdemo.net/files/' })
.on('complete', (result) => {
console.log('Upload result:', result)
})
在线试用 或
阅读文档 了解更多关于如何使用 Uppy 及其插件的详细信息。
Uppy 对纯 JS/HTML、
React、Svelte、
Vue 和 Angular 提供一流的支持。
对于支持的框架(Angular 除外),Uppy 提供了三种构建用户界面的方式:
<Dashboard />。npm install @uppy/core @uppy/dashboard @uppy/tus
添加 CSS uppy.min.css,可以添加到 HTML 页面的 <head> 中,也可以包含在 JS 文件中(如果您选择的打包工具支持的话)。
或者,您也可以使用 Transloadit CDN 中预先构建的打包文件:SmartCDN。在这种情况下,Uppy 会将自身附加到全局 window.Uppy 对象上。
⚠️ 该软件包包含大多数 Uppy 插件,因此不建议将此方法用于生产环境,因为您的用户必须下载所有插件,而您可能只会使用少数插件。
<!-- 1. Add CSS to `<head>` -->
<link
href="https://releases.transloadit.com/uppy/v5.1.6/uppy.min.css"
rel="stylesheet"
/>
<!-- 2. Initialize -->
<div id="files-drag-drop"></div>
<script type="module">
import {
Uppy,
Dashboard,
Tus,
} from 'https://releases.transloadit.com/uppy/v5.1.6/uppy.min.mjs'
const uppy = new Uppy()
uppy.use(Dashboard, { target: '#files-drag-drop' })
uppy.use(Tus, { endpoint: 'https://tusd.tusdemo.net/files/' })
</script>
Dashboard — 通用 UI,包含预览、进度条、元数据编辑器以及所有酷炫的功能。大多数 UI 插件(例如 Webcam 和 Instagram)都需要
拖放 — 简单的拖放区域文件输入 — 更简单的“选择文件”按钮网络摄像头 — 拍摄并录制自拍 📷Google Drive — 从 Google Drive 导入文件Dropbox — 从 Dropbox 导入文件Box — 从 Box 导入文件Instagram — 从 Instagram 导入图片和视频Facebook — 从 Facebook 导入图片和视频OneDrive — 从 Microsoft OneDrive 导入文件从 URL 导入 — 从网络上的任何地方导入直接 URLⓒ 标记表示需要 @uppy/companion,这是一个服务器端组件使插件能够工作。
Tus — 通过开放的tus 标准进行断点续传XHR Upload — 为任何后端(例如 Apache、Nginx)提供常规上传AWS S3 — 直接上传到 AWS S3 或兼容服务Transloadit — 支持Transloadit 强大的文件上传和编码后端Golden Retriever — 在浏览器崩溃后恢复文件没什么缩略图生成器 — 生成图片预览(Dashboard 默认包含)表单 — 在 Uppy 上传之前从 <form> 收集元数据,然后可选择将结果附加回表单我们的目标是支持最新版本的 Chrome、Firefox 和 Safari。
<input type="file">?没有 JavaScript 总比有大量 JavaScript 好,所以这个问题问得有道理!虽然我们经营上传和编码业务已有十年,但我们发现,在某些情况下,文件输入功能存在一些不足之处:
并非所有应用都需要所有这些功能。在许多情况下,<input type="file"> 就足够了。但这些客户提出的问题,足以激励我们开发 Uppy。
Transloadit 团队规模很小,但我们都有一个共同的目标,那就是依靠开源谋生。通过免费提供 tus.io 和Uppy 等项目,我们希望能够推动技术进步,让每个人的生活都变得更好一点,同时创造有意义的工作,并让更多人关注我们的商业服务:内容提取和处理平台。
我们的想法是,即使只有一小部分开源用户能够直接看到托管版本的吸引力,也足以维持我们的工作。到目前为止,这很有效!我们能够将 80% 的时间投入到开源项目中,而且还没有破产。
是的,请查看文档了解更多信息。
是的,无论您在后端需要什么,都可以使用 @uppy/xhr-upload 插件,因为它只处理 POST 或 PUT 请求。这是一个PHP 后端示例。
如果您希望 Tus 插件支持断点续传,请使用其中一个 tus 服务器实现 👌🏼
如果您希望用户能够从 Instagram、Google Drive、Dropbox或通过直接 URL(更多服务即将推出)选择文件,则需要 @uppy/companion。
MIT 许可证