页面点击下载文件实现

前端页面点击后后台实现文件下载。

这里的filePath 你可以做参数传进来,也可以写一个固定值。
我这里是通过后台生成文件后,再将这个文件的路劲存入session域中的。

//文件下载
    @RequestMapping("down")
    public void down(HttpServletResponse response, HttpSession session) throws Exception {
    //filePathSession 是我在前面存入session中的一个要下载的文件地址 比如:F:\宏-202104222000402.xls
        String filePath = (String) session.getAttribute("filePathSession");
        System.out.println("filePath" + filePath);
        File f = new File(filePath);
        if (!f.exists()) {
            response.sendError(404, "File not found!");
            return;
        }
        BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));
        byte[] buf = new byte[1024];
        int len = 0;
        response.reset();
        response.setContentType("application/x-msdownload");
        String filename = f.getName();
        //这里是设置文件名的编码格式,不设置可能会出现中文不显示或乱码的问题
        filename = URLEncoder.encode(filename, "UTF-8");
        response.setHeader("Content-Disposition", "attachment; filename=" + filename);
        OutputStream out = response.getOutputStream();

        while ((len = br.read(buf)) > 0) {
            out.write(buf, 0, len);
        }
        br.close();
        out.close();

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值