JS File Downloader is a simple no dependency library you will be able to download file from browser and show downloading status.
JS File Downloader supports all browsers that are [ES5-compliant] (http://kangax.github.io/compat-table/es5/) (IE8 and below are not supported).
With a package manager (recomanded):
npm install js-file-downloader --save
import Downloader from 'js-file-downloader';
const fileUrl = 'http://...';
new Downloader({
url: fileUrl
})
.then(function () {
// Called when download ended
})
.catch(function (error) {
// Called when an error occurred
});
Download this library from https://github.com/AleeeKoi/js-file-downloader/releases
<script src="/path/to/js-file-downloader.min.js"></script>
<script>
// Then somewhere in your code
new jsFileDownloader({ url: 'http://github.alessandropellizzari.it/test/apedesign-bg.png' })
.then(function () {
// Called when download ended
})
.catch(function (error) {
// Called when an error occurred
});
</script>
A function to call every time a process event is called. Function receive an Event Object as input.
function process (event) {
if (!event.lengthComputable) return; // guard
var downloadingPercentage = Math.floor(event.loaded / event.total * 100);
// what to do ...
};
new Downloader({
url: '...',
process: process
})
If you need to customize request header data you can pass an array of objects like following example:
new Downloader({
url: '...',
headers: [
{ name: 'Authorization', value: 'Bearer ABC123...' }
]
})
Setting this String you can force output file name
Boolean value (default false) to enable/disable library on mobile browsers.
Integer value (default 40000) defining how much ms attend before stop download action.
Boolean value (default true) to enable/disable automatically starting the download. When the value is true
the constructor returns a Promise
, however when it’s set to false, the constructor doesn’t return anything and the download can be started by calling the start()
method on the object.
Example with autoStart
set to true
new Downloader({
url: '...',
autoStart: true
})
Example with autoStart
set to false
const download = new Downloader({
url: '...',
autoStart: false
});
download.start()
.then(function(){
// success
})
.catch(function(error){
// handle errors
});
Boolean value (default false) to force desktop mode even on mobile devices for downloading files.
new Downloader({
url: '...',
forceDesktopMode: true
})
This is a Boolean that indicates whether or not cross-site Access-Control requests should be made using credentials such as cookies, authorization headers or TLS client certificates. Setting withCredentials has no effect on same-site requests.
new Downloader({
url: '...',
withCredentials: true
})
The HTTP request method to use, such as “GET”, “POST”, “PUT”, etc. (default “GET”) Ignored for non-HTTP(S) URLs.
new Downloader({
url: '...',
method: 'POST'
})
You could pass a callback to customize final name, the function receive as 1st argument the name automatically extracted.
new Downloader({
url: '...',
nameCallback: function(name) {
return 'i-am-prefix-' + name;
}
})
Author: AleeeKoi
Live Demo: https://apedesign.net/
GitHub: https://github.com/AleeeKoi/js-file-downloader
#javascript #programming