下載項目中的文件
目錄
1.下載項目中的文件
2.發(fā)送請求地址下載文件
1.get請求
2.post請求
1.下載項目中的文件:
1 <i class="fa fa-download" aria-hidden="true" title="下載" onclick="window.open('file/user.xlsx')"></i>
這樣點擊下載文件后,文件就自動下載了
2.發(fā)送請求地址下載文件
JQuery的ajax函數(shù)的返回類型只有xml、text蹦肴、json渤早、html等類型靠粪,沒有“流”類型聊疲,所以我們要實現(xiàn)ajax下載尖奔,不能夠使用相應(yīng)的ajax函數(shù)進(jìn)行文件下載幻馁。但可以用js生成一個form洗鸵,用這個form提交參數(shù),并返回“流”類型的數(shù)據(jù)仗嗦。在實現(xiàn)過程中膘滨,頁面也沒有進(jìn)行刷新。
1.get請求
var tt = new Date().getTime();
var url = 'http://192.168.1.231:8080/91survey/ws/excel/download';
/**
* 使用form表單來發(fā)送請求
* 1.method屬性用來設(shè)置請求的類型——post還是get
* 2.action屬性用來設(shè)置請求路徑稀拐。
*
*/
var form=$("<form>");//定義一個form表單
form.attr("style","display:none");
form.attr("target","");
form.attr("method","get"); //請求類型
form.attr("action",url); //請求地址
$("body").append(form);//將表單放置在web中
/**
* input標(biāo)簽主要用來傳遞請求所需的參數(shù):
*
* 1.name屬性是傳遞請求所需的參數(shù)名.
* 2.value屬性是傳遞請求所需的參數(shù)值.
* 相當(dāng)于key value
*這個方法理由兩個參數(shù)火邓,一個是tt,一個是companyId德撬;
* 3.當(dāng)為get類型時铲咨,請求所需的參數(shù)用input標(biāo)簽來傳遞,直接寫在URL后面是無效的蜓洪。
* 4.當(dāng)為post類型時纤勒,queryString參數(shù)直接寫在URL后面,formData參數(shù)則用input標(biāo)簽傳遞
* 有多少數(shù)據(jù)則使用多少input標(biāo)簽
*
*/
var input1=$("<input>");
input1.attr("type","hidden");
input1.attr("name","tt");
input1.attr("value",tt);
form.append(input1);
var input2=$("<input>");
input2.attr("type","hidden");
input2.attr("name","companyId");
input2.attr("value",companyId);
form.append(input2);
form.submit();//表單提交
})
2.post請求
var tt =newDate().getTime();
var url = restUrl +'/excel/download?userId='+ userId;
var form=$("<form>");//定義一個form表單
form.attr("style","display:none");
form.attr("target","");
form.attr("method","post");//請求類型
form.attr("action",url);//請求地址
$("body").append(form);//將表單放置在web中
/**
*1.tt是參數(shù)
tt1相當(dāng)于關(guān)鍵字隆檀。tt2相當(dāng)于關(guān)鍵字的值
*
*/
var input1=$("<input>");
input1.attr("type","hidden");
input1.attr("name","tt1");
input1.attr("value",tt2);
form.append(input1);
var input2=$("<input>");
input2.attr("type","hidden");
input2.attr("name","companyId");
input2.attr("value",companyId);
form.append(input2);
form.submit();//表單提交
});