首頁  >  文章  >  web前端  >  使用JS代碼實現點擊按鈕下載文件

使用JS代碼實現點擊按鈕下載文件

高洛峰
高洛峰原創
2016-12-07 10:11:092343瀏覽

正文

有時候我們需要在網頁上增加下載按鈕,讓使用者能夠點擊後下載頁面上的資料,那麼怎麼才能實現功能呢?這裡有兩種方法:

現在需要在頁面上新增一個下載按鈕,點擊按鈕下載檔案。

題外話,這個下載圖示是引用的 font-awesome 上面的。使用時,先將 font-awesome 整個資料夾下載下來,利用bower或是自己去官網上面下載都行。

將整個資料夾放在專案文件中之後,在頁面上方引入css檔案

<link href="libs/font-awesome-4.7.0/css/font-awesome.min.css" type="text/css" rel="stylesheet">

   

在頁面上可以開始使用所需的圖示了

<i class="fa fa-download" aria-hidden="true" title="下载"></i>

在頁面上可以開始使用所需要的圖示了

1.的檔案


如果要下載的是一個excel檔案模板,可以先將該檔案放在專案資料夾下面,然後在頁面下載按鈕上加上onclick事件:

<i class="fa fa-download" aria-hidden="true" title="下载" onclick="window.open(&#39;file/user.xlsx&#39;)"></i>

   

這樣點擊圖示後,文件就會自動下載了。

2.發送請求位址下載檔案

JQuery的ajax函數的回傳類型只有xml、text、json、html等類型,沒有「串流」類型,所以我們要實作ajax下載,不能夠使用對應的ajax函數進行文件下載。但可以用js產生一個form,用這個form提交參數,並回傳「流」類型的資料。在實作過程中,頁面也沒有進行刷新。

1)get請求

$(&#39;.download&#39;).click(function () {
var tt = new Date().getTime();
var url = &#39;http://192.168.1.231:8080/91survey/ws/excel/download&#39;;
/**
* 使用form表单来发送请求
* 1.method属性用来设置请求的类型——post还是get
* 2.action属性用来设置请求路径。
*
*/
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标签主要用来传递请求所需的参数:
*
* 1.name属性是传递请求所需的参数名.
* 2.value属性是传递请求所需的参数值.
*
* 3.当为get类型时,请求所需的参数用input标签来传递,直接写在URL后面是无效的。
* 4.当为post类型时,queryString参数直接写在URL后面,formData参数则用input标签传递
* 有多少数据则使用多少input标签
*
   */
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請求

$(&#39;.download&#39;).click(function(){
var tt =newDate().getTime();
var url = restUrl +&#39;/excel/download?userId=&#39;+ 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中
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();//表单提交
});

   

完成後,在頁面上點擊了圖示,圖示就會自動下載圖示。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn