后端是用Java寫的一個下載的接口,返回的是文件流,需求:點擊,請求,下載
利用iframe實現文件流下載
//把上一次創建的iframe刪掉,不然隨着下載次數的增多頁面上會一堆的iframe
var haveIframe = $("iframe")
if(haveIframe){
haveIframe.remove();
}
downloadFile(url);
function downloadFile(url) {
try{
var elemIF = document.createElement("iframe");
elemIF.src = url+'?pSize=1&pNum=1&flag=1&sts=Y';
elemIF.style.display = "none";
document.body.appendChild(elemIF);
}catch(e){
zzrw.alert("下載異常!");
}
}
利用from表單實現文件流下載
//同樣道理,把上一次創建的form刪掉,不然隨着下載次數的增多頁面上會一堆的form
var haveForm = $("#downloadfileform")
if(haveForm){
$("#downloadfileform").remove();
}
var $eleForm = $("<form id='downloadfileform' method='get'><input id='input_data' name='data' type='hidden'>" +
"<input id='pSize' name='pSize' value='"+obj.pSize+"' type='hidden'>"+
"<input id='pNum' name='pNum' value='"+obj.pNum+"' type='hidden'>"+
"<input id='flag' name='flag' value='"+obj.flag+"' type='hidden'>"+
"<input id='sts' name='sts' value='"+obj.sts+"' type='hidden'>"+
"</form>");
$eleForm.attr("action",url);
$(document.body).append($eleForm);
//提交表單,實現下載
$eleForm.submit();