有時候我們在網頁上需要增加一個下載按鈕,讓用戶能夠點擊後下載頁面上的資料,那麼怎樣才能實現功能呢? ...
有時候我們在網頁上需要增加一個下載按鈕,讓用戶能夠點擊後下載頁面上的資料,那麼怎樣才能實現功能呢?這裡有兩種方法:
現在需要在頁面上添加一個下載按鈕,點擊按鈕下載文件。
題外話,這個下載圖標是引用的 font-awesome 上面的。使用時,- 首先將 font-awesome 整個文件夾下載下來,利用bower或者是自己去官網上面下載都行。
- 將整個文件夾放在項目文件中之後,在頁面上面引入css文件
1 <link href="libs/font-awesome-4.7.0/css/font-awesome.min.css" type="text/css" rel="stylesheet">
- 在頁面上可以開始使用所需要的圖標了
1 <i class="fa fa-download" aria-hidden="true" title="下載"></i>
1.下載項目中的文件
如果要下載的是一個excel文件模板,可以先將該文件放在項目文件夾下麵,然後在頁面下載按鈕上加上onclick事件:
1 <i class="fa fa-download" aria-hidden="true" title="下載" onclick="window.open('file/user.xlsx')"></i>
這樣在點擊圖標之後,文件就會自動下載了。
2.發送請求地址下載文件
JQuery的ajax函數的返回類型只有xml、text、json、html等類型,沒有“流”類型,所以我們要實現ajax下載,不能夠使用相應的ajax函數進行文件下載。但可以用js生成一個form,用這個form提交參數,並返回“流”類型的數據。在實現過程中,頁面也沒有進行刷新。1)get請求
1 $('.download').click(function () { 2 var tt = new Date().getTime(); 3 var url = 'http://192.168.1.231:8080/91survey/ws/excel/download'; 4 5 /** 6 * 使用form表單來發送請求 7 * 1.method屬性用來設置請求的類型——post還是get 8 * 2.action屬性用來設置請求路徑。 9 * 10 */ 11 var form=$("<form>");//定義一個form表單 12 form.attr("style","display:none"); 13 form.attr("target",""); 14 form.attr("method","get"); //請求類型 15 form.attr("action",url); //請求地址 16 $("body").append(form);//將表單放置在web中 17 18 /** 19 * input標簽主要用來傳遞請求所需的參數: 20 * 21 * 1.name屬性是傳遞請求所需的參數名. 22 * 2.value屬性是傳遞請求所需的參數值. 23 * 24 * 3.當為get類型時,請求所需的參數用input標簽來傳遞,直接寫在URL後面是無效的。 25 * 4.當為post類型時,queryString參數直接寫在URL後面,formData參數則用input標簽傳遞 26 * 有多少數據則使用多少input標簽 27 * 28 */ 29 var input1=$("<input>"); 30 input1.attr("type","hidden"); 31 input1.attr("name","tt"); 32 input1.attr("value",tt); 33 form.append(input1); 34 35 var input2=$("<input>"); 36 input2.attr("type","hidden"); 37 input2.attr("name","companyId"); 38 input2.attr("value",companyId); 39 form.append(input2); 40 41 form.submit();//表單提交 42 })
2)post請求
1 $('.download').click(function(){ 2 var tt =newDate().getTime(); 3 var url = restUrl +'/excel/download?userId='+ userId; 4 var form=$("<form>");//定義一個form表單 5 form.attr("style","display:none"); 6 form.attr("target",""); 7 form.attr("method","post");//請求類型 8 form.attr("action",url);//請求地址 9 $("body").append(form);//將表單放置在web中 10 11 var input1=$("<input>"); 12 input1.attr("type","hidden"); 13 input1.attr("name","tt"); 14 input1.attr("value",tt); 15 form.append(input1); 16 17 var input2=$("<input>"); 18 input2.attr("type","hidden"); 19 input2.attr("name","companyId"); 20 input2.attr("value",companyId); 21 form.append(input2); 22 form.submit();//表單提交 23 });
完成後,在頁面上面點擊下載圖標,文件就會自動下載了。 來自為知筆記(Wiz)