本文實例講述了PHP使用ajax的post方式下載excel文件。分享給大家供大家參考,具體如下:
項目需求,前端發(fā)起ajax請求,后端生成excel并下載,同時需要在header頭中,帶上token驗證信息,參考了很多文章,最終實現(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信息,驗證身份");
},
success: function(redata) {
// 創(chuàng)建a標簽,設置屬性,并觸發(fā)點擊下載
var $a = $("a>");
$a.attr("href", redata.data.file);
$a.attr("download", redata.data.filename);
$("body").append($a);
$a[0].click();
$a.remove();
}
});
});
更多關于PHP相關內容可查看本站專題:《PHP+ajax技巧與應用小結》、《php操作office文檔技巧總結(包括word,excel,access,ppt)》、《PHP網(wǎng)絡編程技巧總結》、《php字符串(string)用法總結》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:- JQuery的AJAX實現(xiàn)文件下載的小例子
- Ajax請求二進制流進行處理(ajax異步下載文件)的簡單方法
- Ajax實現(xiàn)文件下載
- Jquery Ajax請求文件下載操作失敗的原因分析及解決辦法
- Ajax 生成流文件下載(實現(xiàn)代碼)
- jQuery的ajax下載blob文件
- 使用Ajax生成的Excel文件并下載的實例
- jQuery使用動態(tài)渲染表單功能完成ajax文件下載
- SpringMVC+Ajax實現(xiàn)文件批量上傳和下載功能實例代碼
- ztree+ajax實現(xiàn)文件樹下載功能