Downloads
Stars
Version
ExportCsv 解决 csv 统一下载导出的功能
exporting
(正在导出) 和 exported
(已导出) 事件,方便在导出前后做处理。譬如,审计page
和 pagesize
两个请求参数只需要 require 进来就可以,无需任何配置
composer require 8891/laravel-exportcsv
通过 fetch 异步下载
const downloadIfAttachment = response => {
let contentDisposition = response.headers.get('Content-Disposition') || '';
if (contentDisposition.toLowerCase().includes('attachment')) {
let filename = contentDisposition.split('=').map(v => v.trim())[1];
response.blob().then( blob => {
let a = document.createElement("a"),
url = URL.createObjectURL(blob);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function() {
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
}, 0);
});
return false;
}
return response;
}
fetch(url, {
headers: {
'Accept': 'text/csv'
}
})
// content-disposition: attachment; filename=data.csv
.then(downloadIfAttachment)
.then(response => {
// do something
});