php通过ajax下载文件,PHP使用ajax的post方式下载excel文件简单示例
本文實(shí)例講述了PHP使用ajax的post方式下載excel文件。分享給大家供大家參考,具體如下:
項(xiàng)目需求,前端發(fā)起ajax請求,后端生成excel并下載,同時(shí)需要在header頭中,帶上token驗(yàn)證信息,參考了很多文章,最終實(shí)現(xiàn)如下:
PHP后端使用base64:
$filename = 'demo.xlsx';
$objWriter = \PHPExcel_IOFactory::createWriter($objectPHPExcel, 'Excel2007');
ob_start();
$objWriter->save("php://output");
$xlsData = ob_get_contents();
ob_end_clean();
return Api::success(['filename' => $filename, 'file' => "data:application/vnd.ms-excel;base64," . base64_encode($xlsData)]);
JS前端:
$('.download').click(function(){
var url = "http://xxxx.com/group/bi/export";
var params = {
from_date: '2017-09-01',
to_date: '2017-09-08',
group_id: 1
};
$.ajax({
type:'POST',
url: url,
data: params,
beforeSend: function(request) {
request.setRequestHeader("Authorization", "token信息,驗(yàn)證身份");
},
success: function(redata) {
// 創(chuàng)建a標(biāo)簽,設(shè)置屬性,并觸發(fā)點(diǎn)擊下載
var $a = $("");
$a.attr("href", redata.data.file);
$a.attr("download", redata.data.filename);
$("body").append($a);
$a[0].click();
$a.remove();
}
});
});
更多關(guān)于PHP相關(guān)內(nèi)容可查看本站專題:《PHP+ajax技巧與應(yīng)用小結(jié)》、《php操作office文檔技巧總結(jié)(包括word,excel,access,ppt)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
總結(jié)
以上是生活随笔為你收集整理的php通过ajax下载文件,PHP使用ajax的post方式下载excel文件简单示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenXML SDK2.0初窥
- 下一篇: php html标签闭合,php截取字符