PHP使用ajax的post方式下載excel文件簡(jiǎn)單示例
本文實(shí)例講述了PHP使用ajax的post方式下載excel文件。分享給大家供大家參考,具體如下:
項(xiàng)目需求,前端發(fā)起ajax請(qǐng)求,后端生成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>");
$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ù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- JQuery的AJAX實(shí)現(xiàn)文件下載的小例子
- Ajax請(qǐng)求二進(jìn)制流進(jìn)行處理(ajax異步下載文件)的簡(jiǎn)單方法
- Ajax實(shí)現(xiàn)文件下載
- Jquery Ajax請(qǐng)求文件下載操作失敗的原因分析及解決辦法
- Ajax 生成流文件下載(實(shí)現(xiàn)代碼)
- jQuery的ajax下載blob文件
- 使用Ajax生成的Excel文件并下載的實(shí)例
- jQuery使用動(dòng)態(tài)渲染表單功能完成ajax文件下載
- SpringMVC+Ajax實(shí)現(xiàn)文件批量上傳和下載功能實(shí)例代碼
- ztree+ajax實(shí)現(xiàn)文件樹下載功能
相關(guān)文章
php-cli簡(jiǎn)介(不會(huì)Shell語言一樣用Shell)
剛才說到,我們可以用php來開發(fā)Shell程序。有的同學(xué)可能會(huì)問啦:php不是用來做網(wǎng)頁的么?。是的,php可以用來做動(dòng)態(tài)網(wǎng)頁,并且當(dāng)初php就是為做動(dòng)態(tài)網(wǎng)頁而開發(fā)的語言,但是理論上php可以用來做任何的程序,甚至是桌面程序2013-06-06
深入理解PHP中的static和yield關(guān)鍵字
這篇文章主要給大家介紹了關(guān)于PHP中static和yield關(guān)鍵字的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用php具有一定的參考學(xué)習(xí)價(jià)值,文章需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
字符串長(zhǎng)度函數(shù)strlen和mb_strlen的區(qū)別示例介紹
strlen和mb_strlen的區(qū)別,但是對(duì)于一些初學(xué)者來說,如果不看手冊(cè),也許不太清楚其中的區(qū)別,下面與大家分享下兩者之間的區(qū)別2014-09-09
PHP中array_slice函數(shù)用法實(shí)例詳解
這篇文章主要介紹了PHP中array_slice函數(shù)用法,以實(shí)例形式詳細(xì)分析了array_slice函數(shù)的具體含義及使用技巧,并以分頁方法為例給出了具體的應(yīng)用實(shí)例,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-11

