multi-download

Download multiple files at once in the browser

  • Owner: sindresorhus/multi-download
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

multi-download

Download multiple files at once in the browser

It works by abusing the a-tag download attribute.

Demo

Install

$ npm install multi-download

Note: This package targets the latest versions of Chrome, Firefox, and Safari.

Usage

<button id="download-button" data-files="unicorn.jpg rainbow.jpg">Download</button>
document.querySelector('#download-button').addEventListener('click', event => {
	const files = event.target.dataset.files.split(' ');
	multiDownload(files);
});
// With jQuery
$('#download-button').on('click', () => {
	const files = $(this).data('files').split(' ');
	multiDownload(files);
});
// With Blob
const unicorn = URL.createObjectURL(new Blob(['?'], {type: 'text/plain'}));
const goat = URL.createObjectURL(new Blob(['?'], {type: 'text/plain'}));
multiDownload([unicorn, goat]);

API

multiDownload(urls, options?)

Returns a Promise that resolves when all the downloads have started.

Note that there's a delay of 1 second between each download.

urls

Type: string[]

URLs to files you want to download. Can be absolute or relative, even cross-origin.

options

Type: object

rename

Type: Function

A function tht accepts an object containing url, index, and urls properties and is expected to return the new filename.

<button id="download-button" data-files="unicorn.jpg rainbow.jpg">Download</button>
document.querySelector('#download-button').addEventListener('click', event => {
	const files = event.target.dataset.files.split(' ');
	multiDownload(files, {
		rename: ({url, index, urls}) => 'New name.pdf'
	});
});

Caveats

If the user has enabled "Ask where to save each file before downloading" in Chrome, it will only download the first file.

Main metrics

Overview
Name With Ownersindresorhus/multi-download
Primary LanguageHTML
Program languageJavaScript (Language Count: 2)
Platform
License:MIT License
所有者活动
Created At2014-05-02 17:38:13
Pushed At2023-09-21 03:42:26
Last Commit At
Release Count9
Last Release Namev4.0.0 (Posted on 2021-10-18 18:06:29)
First Release Name0.1.0 (Posted on 2014-05-02 19:40:18)
用户参与
Stargazers Count570
Watchers Count13
Fork Count49
Commits Count33
Has Issues Enabled
Issues Count24
Issue Open Count5
Pull Requests Count7
Pull Requests Open Count0
Pull Requests Close Count9
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private