前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springMVC实现文件图片的下载功能详解(源码已提供,小白必看)(三)

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

作者头像
一写代码就开心
发布2020-11-19 15:38:08
6090
发布2020-11-19 15:38:08
举报
文章被收录于专栏:java和python

[1] 下载的请求数据

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

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

用户的ID。

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

用户的ID

要下载的资源ID

[2] 下载的后台实现

  1. 创建单元方法处理下载请求
  2. 根据请求获取要下载的资源的流对象
  3. 读取文件并将资源响应给浏览器

前端

代码语言:javascript
复制
<body>
    <h3>SpringMVC的下载</h3>
    <hr>
    <a href="downFile?filename=aa.jpg">点击下载</a>
</body>
代码语言:javascript
复制
    //声明单元方法:处理下载请求
    @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);
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • [1] 下载的请求数据
  • [2] 下载的后台实现
  • 前端
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档