//导出公用方法
import axios from '../util/axios';
/*
** 参数说明:
**1.url:接口地址
**2.params:接口请求参数{}
**3.fileName:设置下载文件名称
**4.callback:回调函数,对请求结果进行回调
*/
export const exportData = (url, params, fileName) => {
return axios.post(url, params, {
responseType: 'blob'
}).then(res => {
var blob = new Blob([res.data], {
type: 'application/vnd.ms-excel;charset=utf-8'
});
var d = new Date();
const date = d.getFullYear() + '' + (d.getMonth() + 1) + '' + d.getDate() + '' + d.getHours() + '' + d.getMinutes() + '' + d.getSeconds();
// 针对于IE浏览器的处理, 因部分IE浏览器不支持createObjectURL
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, fileName + date);
} else {
var downloadElement = document.createElement('a');
var href = window.URL.createObjectURL(blob); // 创建下载的链接
downloadElement.href = href;
downloadElement.download = fileName + date; // 下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); // 点击下载
document.body.removeChild(downloadElement); // 下载完成移除元素
window.URL.revokeObjectURL(href); // 释放掉blob对象
}
});
};
export const downLoadFile = (url, params, filename) => {
return axios.post(url, params, {
responseType: 'arraybuffer'
}).then(res => {
console.log(res)
var blob = new Blob([res.data], {
type: '*'
});
// 针对于IE浏览器的处理, 因部分IE浏览器不支持createObjectURL
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {
var downloadElement = document.createElement('a');
var href = window.URL.createObjectURL(blob); // 创建下载的链接
downloadElement.href = href;
downloadElement.download = filename; // 下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); // 点击下载
document.body.removeChild(downloadElement); // 下载完成移除元素
window.URL.revokeObjectURL(href); // 释放掉blob对象
}
});
};
export const previewFile = (url, params, filename, callback) => {
return axios.post(url, params, {
responseType: 'arraybuffer'
}).then(res => {
console.log(res)
var blob = new Blob([res.data], {
type: '*'
});
// 针对于IE浏览器的处理, 因部分IE浏览器不支持createObjectURL
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {
// var downloadElement = document.createElement('a');
var href = window.URL.createObjectURL(blob); // 创建下载的链接
var pdfUrl = '../../static/pdf/web/viewer.html?file=' + encodeURIComponent(href)
// callback(filename.includes("jpg") || filename.includes("png") ? href : pdfUrl)
if (filename.includes("jpg") || filename.includes("png")) {
callback(href, "img")
}
else if (filename.includes("txt")) {
callback(href, "txt")
}
else {
callback(pdfUrl,"pdf")
}
// downloadElement.href = pdfUrl;
// // downloadElement.download = filename; // 下载后文件名
// document.body.appendChild(downloadElement);
// downloadElement.click(); // 点击下载
// document.body.removeChild(downloadElement); // 下载完成移除元素
// window.URL.revokeObjectURL(href); // 释放掉blob对象
}
});
};
js 处理下载文件流
最新推荐文章于 2024-08-02 22:18:37 发布