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

------前端代码------
<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的时候没有反应

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dong__xue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值