使⽤JS代码实现点击按钮下载⽂件
正⽂
有时候我们在⽹页上需要增加⼀个下载按钮,让⽤户能够点击后下载页⾯上的资料,那么怎样才能实现功能呢?这⾥有两种⽅法:
现在需要在页⾯上添加⼀个下载按钮,点击按钮下载⽂件。
题外话,这个下载图标是引⽤的 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('file/user.xlsx')"></i>
这样在点击图标之后,⽂件就会⾃动下载了。
2.发送请求地址下载⽂件
JQuery的ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使⽤相应的ajax函数进⾏⽂件下载。但可以⽤js⽣成⼀个form,⽤这个form提交参数,并返回“流”类型的数据。在实现过程中,页⾯也没有进⾏刷新。
1)get请求
$('.download').click(function () {
var tt = new Date().getTime();
var url = '192.168.1.231:8080/91survey/ws/excel/download';
/
jquery下载文件请求**
* 使⽤form表单来发送请求
* 1.method属性⽤来设置请求的类型——post还是get
* 2.action属性⽤来设置请求路径。
*
*/
html5菜鸟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标签
日本googleplay*
*/
var input1=$("<input>");round函数保留4位小数的公式
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请求
$('.download').click(function(){
var tt =newDate().getTime();
var url = restUrl +'/excel/download?userId='+ userId;
var form=$("<form>");//定义⼀个form表单tablet hardness
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();//表单提交
});
完成后,在页⾯上⾯点击下载图标,⽂件就会⾃动下载了。
>android桌面小部件开发
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论