使用io流实现下载文件,运行时打断点发现产生了流,但是浏览器并没有下载文件。admin管理员组文章数量:1609530
经查询,发现若干原因。
1.设置response的头文件
response.addHeader(" Content-disposition", "attachment; filename=" +fileName);
其中 Content-disposition设置表示浏览器自动下载。
但并未解决我的问题。
后来在网上查询有说法是使用io流下载文件,不能通过ajax请求,要使用http请求
,我按照此思路修改代码,最终功能实现。修改后的请求代码如下:
function downloadFile(fileName) {
var fileName = encodeURI(encodeURI(fileName));
var url = "${ctx}/rpt-web/frame/topicShow/downloadFile?fileName="+fileName;
$('body').append($('<iframe id="download"/>'));
$("#download").attr('src',url);
}
其中红色部分代码是为了防止js传到后台的参数出现乱码,对应的在后台代码中要加上下面一行代码:
fileName =URIDecoder.decode(fileName,"utf-8");
至于io流下载,到底能不能使用ajax请求,还有待验证。
版权声明:本文标题:使用IO流下载文件,浏览器不下载的问题。 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1726896003a1089116.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论