springMVC实现文件图片的下载功能详解(源码已提供,小白必看)(三)

本文介绍了使用SpringMVC框架实现文件下载的过程。包括下载请求的处理方式、资源的流对象获取方法及如何将文件响应给浏览器。同时提供了前端页面与后端控制器的具体实现代码。

[1] 下载的请求数据

用户通过浏览器发起下载请求,服务器在接收到请求后,根据当前请求的用户信息,去 数据库中获取当前用户要下载的资源的文件路径,然后服务器再去其硬盘中读取对应的 文件,将文件响应给浏览器,基于此过程,下载请求的请求数据为:

简单的下载:文件的路径直接作为一个字段存储在用户信息表中

用户的ID。

复杂的下载:数据库中专门有一张表记录要下载的文件资源

用户的ID

要下载的资源ID

[2] 下载的后台实现

  1. 创建单元方法处理下载请求

  2. 根据请求获取要下载的资源的流对象

  3. 读取文件并将资源响应给浏览器

前端

<body>
    <h3>SpringMVC的下载</h3>
    <hr>
    <a href="downFile?filename=aa.jpg">点击下载</a>
</body>
    //声明单元方法:处理下载请求
    @RequestMapping("downFile")
    public void downFile(String filename, HttpServletResponse response, HttpServletRequest request) throws IOException {
        //设置下载资源的MIME类型?
        //设置响应头,告诉浏览器下载的资源需要存储到客户端的硬盘中,而不是解析打开。
        response.setHeader("Content-Disposition", "attachment;filename="+filename);
        //1.获取要下载的资源的流对象
            //获取文件的绝对路径
            String path=request.getServletContext().getRealPath("/upload");
            //获取文件的二进制数据
            byte[] bytes = FileUtils.readFileToByteArray(new File(path, filename));
        //2.响应浏览器
            //获取输出流对象
            ServletOutputStream outputStream = response.getOutputStream();
            //响应资源
            outputStream.write(bytes);
    }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一写代码就开心

你的打赏将是我最大的动力

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

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

打赏作者

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

抵扣说明:

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

余额充值