file-selector

Convert a DragEvent or file input to a list of File objects

Showing:

Popularity

Downloads/wk

1.2M

GitHub Stars

33

Maintenance

Last Commit

10mos ago

Contributors

9

Package

Dependencies

1

Size (min+gzip)

2.0KB

License

MIT

Type Definitions

Built-In

Tree-Shakeable

Yes?

Categories

Readme

File Selector

A small package for converting a DragEvent or file input to a list of File objects.

npm GitHub Workflow Status Coveralls github branch

Table of Contents

Installation


You can install this package from NPM:

npm add file-selector

Or with Yarn:

yarn add file-selector

CDN

For CDN, you can use unpkg:

https://unpkg.com/file-selector/dist/bundles/file-selector.umd.min.js

The global namespace for file-selector is fileSelector:

const {fromEvent} = fileSelector;
document.addEventListener('drop', async evt => {
    const files = await fromEvent(evt);
    console.log(files);
});

Usage


ES6

Convert a DragEvent to File objects:

import {fromEvent} from 'file-selector';
document.addEventListener('drop', async evt => {
    const files = await fromEvent(evt);
    console.log(files);
});

Convert a file input to File objects:

import {fromEvent} from 'file-selector';
const input = document.getElementById('myInput');
input.addEventListener('change', async evt => {
    const files = await fromEvent(evt);
    console.log(files);
});

CommonJS

Convert a DragEvent to File objects:

const {fromEvent} = require('file-selector');
document.addEventListener('drop', async evt => {
    const files = await fromEvent(evt);
    console.log(files);
});

Browser Support


Most browser support basic File selection with drag 'n' drop or file input:

For folder drop we use the FileSystem API which has very limited support:

Contribute


If you wish to contribute, please use the following guidelines:

Credits


Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100