zoukankan      html  css  js  c++  java
  • AJAX实现文件下载

    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,来取得文件下载的处理进度。

    例如:用js生成一个form,用这个form提交参数,并返回“流”类型的数据。在实现过程中,页面也没有进行刷新。

    var form=$("<form>");//定义一个form表单
    form.attr("style","display:none");
    form.attr("target","");
    form.attr("method","post");
    form.attr("action","exportData");
    var input1=$("<input>");
    input1.attr("type","hidden");
    input1.attr("name","exportData");
    input1.attr("value",(new Date()).getMilliseconds());
    $("body").append(form);//将表单放置在web中
    form.append(input1);
    
    form.submit();//表单提交 
  • 相关阅读:
    字体最小值
    javascript常用事件
    豆瓣移动端风格的css命名方法与学习
    JS基础函数
    css3动画
    html与css的移动端与pc端需要注意的事项
    javascript什么是函数
    JavaScript基础学习
    开始学javascript基础
    使用css3属性,大部分浏览器要识别前缀
  • 原文地址:https://www.cnblogs.com/liaojie970/p/5663719.html
Copyright © 2011-2022 走看看