使用js實現點擊按鈕下載文件

有時候咱們在網頁上須要增長一個下載按鈕,讓用戶可以點擊後下載頁面上的資料,那麼怎樣才能實現功能呢?這裏有兩種方法:css

 

 

如今須要在頁面上添加一個下載按鈕,點擊按鈕下載文件。html

題外話,這個下載圖標是引用的 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 });

 

完成後,在頁面上面點擊下載圖標,文件就會自動下載了。
 
 
相關文章
相關標籤/搜索