Ajax实现⽂件下载
JQuery的ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使⽤相应的ajax函数进⾏⽂件下载。但可以⽤js⽣成⼀个form,⽤这个form提交参数,并返回“流”类型的数据。在实现过程中,页⾯也没有进⾏刷新。
1. 使⽤ajax,ajax的返回值类型是json,text,html,xml类型,或者可以说ajax的发送,接受都只能是string字符串,不能流类型,所以⽆法实现⽂件下载,强⽤会出现response冲突。如果⾮要使⽤ajax的话,只能通过返回值得到⽣成的⽂件相关url。然后在回调函数⾥通过创建⼀个iframe,并设置其src值为⽂件url,或者⼀个对⽂件⽣成流的处理url,这样操作来实现⽂件下载且页⾯⽆刷新。
2. 不使⽤ajax,通过dom动态操作或创建iframe,form的⽅式来实现,在下载⽂件的同时实现页⾯不刷新,其中iframe的src可以是⽂件地址url来直接下载⽂件,也可以是流处理url通过response流输出下载,form的是流处理url通过response流输出下
载,dom动态操作的时候实现⽂件下载,且页⾯⽆刷新。要在下载的同时实现进度条的话,可以创建⼀个定时任务,每隔⼀定时间就向后台发送请求,通过公⽤的对象,⽐如session,来取得⽂件下载的处理进度。
var title=$("input[name='gjzSelect']").val();
var rqTime = $(".ui-datepicker-time").val();
var ddd= rqTime.split("⼀");
var startTime=ddd[];
有一个字长为32位的浮点数var endTime=ddd[];
var form = $("<form>"); //定义⼀个form表单
嵌入式是哪个专业学的form.attr('style', 'display:none'); //在form表单中添加查询参数
form.attr('target', '');
mousemove和mouseoverform.attr('method', 'post');
form.attr('action', "<%=basePath%>jiankong/madeExcel.do");
var input = $('<input>');
input.attr('type', 'hidden');
input.attr('name', 'startTime');
input.attr('value', startTime);
var input = $('<input>');
input.attr('type', 'hidden');
input.attr('name', 'endTime');
input.attr('value', endTime);
var input = $('<input>');
input.attr('type', 'hidden');
input.attr('name', 'title');
input.attr('value', title);
$('body').append(form); //将表单放置在web中
form.append(input); //将查询参数控件提交到表单上
h5 教程form.append(input);
form.append(input);
form.submit();
<%--
$.ajax({
url:'<%=basePath%>jiankong/madeExcel.do',
jquery下载文件请求cache:false,
data:{
'startTime':startTime,
'endTime':endTime,
'title' :title
},
error:function (e){
alert("导出失败!");
应用签名android不一样},
success:function (data){
alert("导出成功!");
}
});
--%>
以上所述是⼩编给⼤家分享的Ajax实现⽂件下载的相关知识,希望对⼤家有所帮助!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论