92 lines
2.0 KiB
JavaScript
92 lines
2.0 KiB
JavaScript
export default {
|
|
/**
|
|
* Downloads file
|
|
* @param {*} filename
|
|
* @param {*} data
|
|
*/
|
|
download(filename, data) {
|
|
var element = document.createElement("a");
|
|
element.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(data));
|
|
element.setAttribute("download", filename);
|
|
|
|
element.style.display = "none";
|
|
document.body.appendChild(element);
|
|
|
|
element.click();
|
|
|
|
document.body.removeChild(element);
|
|
},
|
|
|
|
/**
|
|
* Convert data of file selected in input to base64 string
|
|
* @param {*} input
|
|
*/
|
|
async toBase64(input) {
|
|
return new Promise((resolve) => {
|
|
if (input.files.length == 0){
|
|
resolve(null)
|
|
}
|
|
else if (input.files.length == 1){
|
|
this.fileToBase64(input.files[0]).then(resolve)
|
|
}
|
|
else
|
|
Promise.all(Array(...input.files).map(this.fileToBase64)).then(resolve)
|
|
}
|
|
);
|
|
},
|
|
|
|
/**
|
|
* Convert data of file selected in input to base64 string
|
|
* @param {*} input
|
|
*/
|
|
async fileToBase64(file) {
|
|
return new Promise((resolve, reject) => {
|
|
var reader = new FileReader();
|
|
reader.readAsDataURL(file);
|
|
|
|
reader.onload = function () {
|
|
resolve(reader.result)
|
|
};
|
|
reader.onerror = function (error) {
|
|
reject(error)
|
|
};
|
|
});
|
|
},
|
|
|
|
/**
|
|
* Read data of file/files selected in input as string
|
|
* @param {*} input
|
|
*/
|
|
async read(input) {
|
|
return new Promise((resolve) => {
|
|
if (input.files.length == 0){
|
|
resolve(null)
|
|
}
|
|
else if (input.files.length == 1){
|
|
this.readFile(input.files[0]).then(resolve)
|
|
}
|
|
else
|
|
Promise.all(Array(...input.files).map(this.readFile)).then(resolve)
|
|
}
|
|
);
|
|
},
|
|
|
|
/**
|
|
* Read data of file/files selected in input as string
|
|
* @param {*} input
|
|
*/
|
|
async readFile(file) {
|
|
return new Promise((resolve, reject) => {
|
|
var reader = new FileReader();
|
|
reader.readAsText(file);
|
|
|
|
reader.onload = function () {
|
|
resolve(reader.result)
|
|
};
|
|
reader.onerror = function (error) {
|
|
reject(error)
|
|
};
|
|
});
|
|
},
|
|
};
|