js 下载文件的三种方式
最编程
2024-07-17 15:57:08
...
/**
* 二进制文件流下载
* @param {BlobPart} data 文件流
* @param {string} fileName 下载文件名
*/
export function downloadBlob(data, fileName) {
const blob = new Blob([data]);
const link = document.createElement('a');
link.download = fileName;
link.style.display = 'none';
link.href = URL.createObjectURL(blob);
link.click();
URL.revokeObjectURL(link.href);
document.body.removeChild(link);
}
/**
* 文件url下载
* @param {string} url 文件地址
* @param {string} fileName 下载文件名
*/
export function downloadUrl(url, fileName) {
const link = document.createElement('a');
link.style.display = 'none';
link.download = fileName;
link.href = url;
link.click();
document.body.removeChild(link);
}
/**
* post方式下载文件
* @param {string} url 请求地址
* @param {object} params 请求参数对象
* @param {string} [method=post] 请求类型
*/
export function downloadPost(url, params = {}, method = 'post') {
const form = document.createElement('form');
form.style.display = 'none';
form.action = url;
form.method = method;
form.target = '_blank';
Object.keys(params).forEach(name => {
const input = document.createElement('input');
input.type = 'hidden';
input.name = name;
input.value = params[name];
form.appendChild(input);
});
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}
上一篇: 用 JS 下载文件的三种方法
下一篇: 通过 url 链接下载 js 文件