Dropzone is an easy to use drag'n'drop library. It supports image previews and shows nice progress bars.
See the codeDropzone 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.
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" });
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
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>
src/options.ts
for all available options⚠️ NOTE: Dropzone 6 does not support Internet Explorer. If you still need it, use
5.9.3. See theCHANGELOGfor everything that changed in 6.0.0.
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
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.
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!
thumbnail(file, data)
and display the image wherever you likeSee the LICENSE file
Overall
Maintained
Code review
npm
Latest release
Releases this year
(top 24 of 65)
557 followers · starred Jan 2023
141 followers · starred Feb 2013
251 followers · starred Feb 2012
3,653 followers · starred Oct 2013
Dropzone is an easy to use drag'n'drop library. It supports image previews and shows nice progress bars.
See the codeDropzone 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.
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" });
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
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>
src/options.ts
for all available options⚠️ NOTE: Dropzone 6 does not support Internet Explorer. If you still need it, use
5.9.3. See theCHANGELOGfor everything that changed in 6.0.0.
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
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.
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!
thumbnail(file, data)
and display the image wherever you likeSee the LICENSE file
Overall
Maintained
Code review
npm
Latest release
Releases this year
(top 24 of 65)
557 followers · starred Jan 2023
141 followers · starred Feb 2013
251 followers · starred Feb 2012
3,653 followers · starred Oct 2013