使用ResponseEntity实现下载文件的功能

所下载的图片路径如图所示:

Controller:

@RequestMapping("/testDown")
public ResponseEntity<byte[]> testResponseEntity(HttpSession session) throws IOException {//获取ServletContext对象ServletContext servletContext = session.getServletContext();//获取服务器中文件的真实路径String realPath = servletContext.getRealPath("/static/img/panda.jpg");//创建输入流InputStream is = new FileInputStream(realPath);//创建字节数组byte[] bytes = new byte[is.available()];//将流读到字节数组中is.read(bytes);//创建HttpHeaders对象设置响应头信息MultiValueMap<String, String> headers = new HttpHeaders();//设置要下载方式以及下载文件的名字headers.add("Content-Disposition", "attachment;filename=panda.jpg");//设置响应状态码HttpStatus statusCode = HttpStatus.OK;//创建ResponseEntity对象ResponseEntity<byte[]> responseEntity = new ResponseEntity<>(bytes, headers, statusCode);//关闭输入流is.close();return responseEntity;
}

前端页面:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>文件上传和下载</title>
</head>
<body>
<a th:href="@{/testDown}">下载panda.jpg</a>
</body>
</html>

运行结果:

SpringMVC通过ResponseEntity实现文件下载相关推荐

  1. SpringMVC基于ResponseEntity的文件下载

    SpringMVC要求我们返回一个视图,否则会抛出异常 而@ResponseBody使Controller直接返回JSON数据. 而ResponseEntity 可以定义返回的HttpHeaders和 ...

  2. SpringMVC基础配置及使用

    SpringMVC基础配置及使用 SpringMVC: 1.SpringMVC和Spring的关系:     软件开发的三层架构: web层[表示层.表现层]---->Service层----& ...

  3. SpringBoot(SpringMVC)文件上传下载

    话说,springboot不是一个全新的框架,它只是将其它框架整合在一起,提供一个"开箱即用"的环境.此文,利用的正是SpringMVC的功能. 创建springboot项目:ht ...

  4. java中注解动态传参_SpringMVC之注解、传参、返回值及拦截器

    1. 注解式开发之annotation-driven解释 (1) mvc注解驱动在哪个文件中配置? Springmvc.xml (2) 配置mvc注解驱动使用哪个标签? 2. 注解式开发之视图解析器 ...

  5. SpringMVC,SpringBoot文件下载

    前言 最近严查security, 导致原来暴露出去的s3不能用了,不允许public的s3,暂时的折中方案是自己做跳转.于是需要在SpringMVC中实现文件下载功能. 关于文件存储的设计 文件存储通 ...

  6. SpringMVC 实现文件下载

    SpringMVC 实现文件下载有两种方式: 常规方法 // 下载后的文件名称String filename = new String("xxx.dox","ISO885 ...

  7. SpringMVC之文件上传和文件下载

    1. 文件上传 在web开发中一般会有文件上传的操作 一般JavaWeb开发中文件上传使用的 Apache组织的Commons FileUpload组件 SpringMVC中使用  Multipart ...

  8. 基于 Nginx XSendfile + SpringMVC 进行文件下载

    转自:http://denger.iteye.com/blog/1014066 基于 Nginx XSendfile + SpringMVC 进行文件下载 PS:经过实际测试,通过 nginx 提供文 ...

  9. springMVC实现文件下载(附带Servlet方式)

    一.Servlet实现方式 import java.io.File; import java.io.IOException; import java.io.OutputStream;import ja ...

最新文章

  1. html中item属性,项目id(属性) | itemid (attribute)
  2. MongoDB sharding迁移那些事(一)
  3. pip install 报错:Versioning for this project requires either an sdist tarball, ...
  4. QT高级编程之QT基本概览
  5. tp 数据库查询排序_怎么进行数据库分库分表?
  6. 基于LiteOS Studio零成本学习LiteOS物联网操作系统
  7. adb shell 修改文件名_shell修改文件名(一)
  8. 计算机网络医院拓扑图方案设计,[方案]某医院计算机网络综合布线系统设计
  9. Shopee菲律宾站如何选品?听Shopee Man本土多店管理系统告诉你
  10. 同步发电机转子的转动惯量与运动方程(一) 基本物理概念
  11. 计算机病毒的常用方法,常用计算机检测病毒的方法
  12. 克罗内克积Kronecker
  13. mc网站服务器设置家怎么圈地,我的世界怎么圈地 教你设置自己的领地
  14. Java网课简易飞机大战
  15. 苹果cmsV10程序无法搜索影片的处理教程
  16. 新闻资讯类网站的PC端前台模板分享
  17. 小程序获取视频第一帧
  18. Android - Broadcast
  19. Flex Programming Tricks 1
  20. 【数据结构】小项目:航班查询系统

热门文章

  1. bzoj4407 于神之怒加强版(莫比乌斯反演+线性筛)
  2. 【蓝桥杯冲刺 day23】第二点五个不高兴的小明 --- O(n^2)优化思路
  3. 基于差分进化算法(DE)改进的jDE2 处理约束优化问题
  4. Java项目:基于jsp+mysql+Spring+SpringMVC+mybatis的爱康医院专家预约管理系统
  5. android 显示图片和文字,android TextView显示文字和图片
  6. 净现值NPV(Net Present Value)
  7. 1455: C语言实验题――数字串求和
  8. arch linux安装_安装Arch Linux如何使我的旧笔记本电脑重获新生
  9. 2023第八届少儿模特明星盛典 小超模黄梓曦 担任全球赛代言人
  10. T-SQL 编程 --值得你看,真香 --- ( 不会真的有人用 SQL 编程吧 )