GitHub 火线榜

GitHub 火线榜 · 仓库档案

enyo/dropzone

Dropzone is an easy to use drag'n'drop library. It supports image previews and shows nice progress bars. (简介来自仓库自身文档。)

JavaScript#drag-and-drop#dropzone#file-upload

数据截至 10月28日enyo

最好成绩

#299

总榜 · JavaScript 语言

1.8万

累计 Star

3229

Fork 总数

0

近 30 天在榜天数

许可证: NOASSERTION最近 push: 10月1日Open Issues(含 PR): 117自 2026-10-25 起采集;未知 = 尚未采集到

项目文档

Dropzone.js

CI

Dropzone is a JavaScript library that turns any HTML element into a dropzone. This means that a user can drag and drop a file onto it, and Dropzone will display file previews and upload progress, and handle the upload for you via XHR.

It's fully configurable, can be styled according to your needs and is trusted by thousands. It's written in TypeScript and ships its own types, so there's nothing extra to install.

Dropzone Screenshot

Quickstart

Install:

$ npm install dropzone
# or with pnpm:
$ pnpm add dropzone

Use as ES6 module (recommended):

import { Dropzone } from "dropzone";
const dropzone = new Dropzone("div#myId", { url: "/file/post" });

or use as CommonJS module:

const { Dropzone } = require("dropzone");
const dropzone = new Dropzone("div#myId", { url: "/file/post" });

TypeScript

The types come with the package — there's no @types/dropzone to install, and you should remove it if you have it: it stopped at 5.7.9 and describes the v5 API.

import { Dropzone } from "dropzone";
import type { DropzoneFile, DropzoneOptions } from "dropzone";

const options: DropzoneOptions = { url: "/file/post", maxFilesize: 10 };
const dropzone = new Dropzone("div#myId", options);

// listener arguments are inferred from the event name
dropzone.on("addedfile", (file) => console.log(file.name, file.upload.uuid));

👉 Checkout our example implementations for different bundlers

Not using a package manager or bundler?

Use the standalone files like this:

<script src="https://unpkg.com/dropzone@6/dist/dropzone-min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/dropzone@6/dist/dropzone.css" type="text/css" />

<div class="my-dropzone"></div>

<script>
  // Dropzone has been added as a global variable.
  const dropzone = new Dropzone("div.my-dropzone", { url: "/file/post" });
</script>


⚠️ NOTE: Dropzone 6 does not support Internet Explorer. If you still need it, use 5.9.3. See the CHANGELOG for everything that changed in 6.0.0.

Repository layout

This is a monorepo. It holds the library, the documentation and the website:

packages/dropzone the library published to npm as dropzone
apps/docs the documentation, built with Docusaurus
apps/website www.dropzone.dev, built with SvelteKit
pnpm install

pnpm build          # the library and the docs
pnpm test           # the library's unit tests
pnpm test:e2e       # the library's browser tests
pnpm dev:docs       # the documentation, locally
pnpm dev:website    # the website, locally

Building the deployable site

The website and the documentation are published together as one GitHub Pages site: the website at the root, the documentation under /docs. One command produces exactly what gets deployed, in _site/:

pnpm build:site

CI runs the same script, so what you get locally is what ships. It builds each half with its own toolchain and combines them, which means there is no manual copying step to remember or get wrong.

Community

If you need support please use the discussions section or stackoverflow with the dropzone.js tag and not the GitHub issues tracker. Only post an issue here if you think you discovered a bug.

If you have a feature request or want to discuss something, please use the discussions as well.

⚠️ Please read the contributing guidelines before you start working on Dropzone!

Main features ✅

  • Beautiful by default
  • Image thumbnail previews. Simply register the callback thumbnail(file, data) and display the image wherever you like
  • High-DPI screen support
  • Multiple files and synchronous uploads
  • Progress updates
  • Support for large files
    • Chunked uploads (upload large files in smaller chunks)
  • Support for Amazon S3 Multipart upload
  • Complete theming. The look and feel of Dropzone is just the default theme. You can define everything yourself by overwriting the default event listeners.
  • Browser image resizing (resize the images before you upload them to your server)
  • Well tested

MIT License

See the LICENSE file

当前上榜

近 30 天势头

近 30 天没有上榜记录。

把上榜徽章放进你的 README · enyo/dropzone[![把上榜徽章放进你的 README](https://git.vaiox.xyz/api/badge/enyo/dropzone.svg)](https://git.vaiox.xyz/zh/repo/enyo/dropzone)

Badge · 任何仓库都可以挂 —— 未上榜的仓库显示灰章,上完榜会自动点亮。

<a href="https://git.vaiox.xyz/zh/repo/enyo/dropzone"><img src="https://git.vaiox.xyz/api/badge/enyo/dropzone.svg" alt="把上榜徽章放进你的 README" height="20"></a>

← 回到榜单

GitHub 火线榜往日榜发现联系我们 · Contact