2.1.0 • Published 4 days ago

file-selector v2.1.0

Weekly downloads
916,784
License
MIT
Repository
github
Last release
4 days ago

file-selector

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

npm Tests codecov Open Collective Backers Open Collective Sponsors Contributor Covenant

Table of Contents

Installation

You can install this package from NPM:

npm 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 change event for an input type file 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);
});

Convert FileSystemFileHandle items to File objects:

import {fromEvent} from 'file-selector';

// Open file picker
const handles = await window.showOpenFilePicker({multiple: true});
// Get the files
const files = await fromEvent(handles);
console.log(files);

NOTE The above is experimental and subject to change.

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

Checkout the organization CONTRIBUTING.md.

Credits

Support

Backers

Support us with a monthly donation and help us continue our activities. [Become a backer]

Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]

License

MIT

3.0.0-beta.2

4 days ago

3.0.0-beta.1

14 days ago

2.1.0

14 days ago

2.0.0

14 days ago

2.0.0-beta.3

18 days ago

2.0.0-beta.2

20 days ago

2.0.0-beta.1

21 days ago

1.2.0

22 days ago

1.1.0

1 month ago

1.0.0

1 month ago

0.10.0

1 month ago

0.9.0

1 month ago

0.8.0

1 month ago

0.7.0

1 month ago

0.5.0

3 years ago

0.6.0

3 years ago

0.3.0

3 years ago

0.4.0

3 years ago

0.3.1

3 years ago

0.1.19

4 years ago

0.2.4

4 years ago

0.1.18

4 years ago

0.2.3

4 years ago

0.1.17

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.2.2

4 years ago

0.1.16

4 years ago

0.1.15

4 years ago

0.1.14

4 years ago

0.1.13

4 years ago

0.1.12

5 years ago

0.1.11

6 years ago

0.1.10

6 years ago

0.1.9

6 years ago

0.1.8

6 years ago

0.1.7

6 years ago

0.1.6

6 years ago

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago