页面无刷新下载文件

参考原址:http://langgufu.iteye.com/blog/2076373

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动态操作的时候实现文件下载,且页面无刷新。

方法一:使用iframe

<a href = 'javascript:;' onclick = 'downfile(this)' value='filename'>

var url = "/hsb_workreport/downloadFile.do?filename="+filename;

//jQuery版本
function downloadFile(url){
    $("body").append($("

<iframe/>

").attr("src",url));
}
//javascript版本
function downloadFile(url){
        var iframe = document.createElement("iframe");  
        document.body.appendChild(iframe);  
        iframe.src =url;
}

方法二:

使用a标签

<a href="/project/download.action" target="_blank">点击下载</a>

方法三:

  1. 使用location.href属性

    function downloadFile(url){
        location.href=url;
    }

方法四:

  1. 使用window.open

    function downloadFile(url){
        window.open(url);
    }

相关推荐