SpringMVC 文件下载

本文介绍如何通过设置HTTP响应头中的Content-Disposition属性来控制浏览器下载文件而非直接显示,同时讲解了如何利用Spring MVC实现文件下载功能。

1.访问资源时相应头如果没有设置 Content-Disposition,浏览器默认按照inline 值进行处理

    1.1 inline 能显示就显示,不能显示就下载

2.只需要修改相应头中 Context-Disposition=”attachment;filename=文件名”

    2.1 attachment 下载,以附件形式下载.

    2.2 filename=值就是下载时显示的下载文件名

3.实现步骤

    3.1 导入 阿帕奇 的两个 jar

    3.2 在 jsp 中添加超链接,设置要下载文件

        3.2.1 在 springmvc 中放行静态资源 files 文件夹

<a href="download?fileName=a.rar">下载</a>

    3.3 编写控制器方法

@RequestMapping("download")
public void download(String fileName,HttpServletResponse res,HttpServletRequest req) throws IOException{
    //设置响应流中文件进行下载
    res.setHeader("Content-Disposition","attachment;filename="+fileName);
    //把二进制流放入到响应体中.
    ServletOutputStream os = res.getOutputStream();
    //获取files文件夹的绝对地址
    String path = req.getServletContext().getRealPath("files");
    System.out.println(path);
    File file = new File(path, fileName);
    //将文件转换为字节流数组
    byte[] bytes = FileUtils.readFileToByteArray(file);
    //响应给客户端
    os.write(bytes);
    os.flush();
    os.close();
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值