后台流触发浏览器下载文件

 2023-09-05 阅读 46 评论 0

摘要:------前端代码------ <iframe id="spb" src="" style="width: 1px;height: 1px;" frameborder="0"></iframe>function downLoad(spzt,spbUrl,downloadPerson,orderId){$.get("beforeDownload",{},funct
------前端代码------
<iframe id="spb" src="" style="width: 1px;height: 1px;" frameborder="0"></iframe>function downLoad(spzt,spbUrl,downloadPerson,orderId){$.get("beforeDownload",{},function (data) {$("#spb").attr("src","download");        })}

思路就是将下载的后台请求地址指向页面中iframe的src,即触发下载

    //下载前置空请求@ResponseBody@RequestMapping("beforeDownload")public void beforeDownload(HttpServletRequest req,HttpServletResponse resp,String orderId) throws IOException {}
    //执行下载@ResponseBody@RequestMapping("download")public void download(HttpServletRequest req,HttpServletResponse resp) throws IOException {// 输出到浏览器(下载)OutputStream out = null;try {// 这种写法是服务器上用的,因为要把文件下载到本地,只要确定文件名称即可,会让用户自己选择保存在本机的哪个地方String userAgent = req.getHeader("User-Agent");// 针对IE或者以IE为内核的浏览器:String fileName = "spb.doc";resp.setContentType("application/msword");//若为excel(application/msexcel)resp.setHeader("Content-disposition", "attachment;filename=" + fileName);out = resp.getOutputStream();doc.write(out);} catch (Exception e) {e.printStackTrace();} finally {try {out.flush();out.close();} catch (Exception e) {}}}

2019年11月1日

注意:放入src属性的url必须加http,今天又用了该方式下载,发现没有加http的时候没有反应

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/16.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息