SpringMVC通过ResponseEntity实现文件下载
使用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实现文件下载相关推荐
- SpringMVC基于ResponseEntity的文件下载
SpringMVC要求我们返回一个视图,否则会抛出异常 而@ResponseBody使Controller直接返回JSON数据. 而ResponseEntity 可以定义返回的HttpHeaders和 ...
- SpringMVC基础配置及使用
SpringMVC基础配置及使用 SpringMVC: 1.SpringMVC和Spring的关系: 软件开发的三层架构: web层[表示层.表现层]---->Service层----& ...
- SpringBoot(SpringMVC)文件上传下载
话说,springboot不是一个全新的框架,它只是将其它框架整合在一起,提供一个"开箱即用"的环境.此文,利用的正是SpringMVC的功能. 创建springboot项目:ht ...
- java中注解动态传参_SpringMVC之注解、传参、返回值及拦截器
1. 注解式开发之annotation-driven解释 (1) mvc注解驱动在哪个文件中配置? Springmvc.xml (2) 配置mvc注解驱动使用哪个标签? 2. 注解式开发之视图解析器 ...
- SpringMVC,SpringBoot文件下载
前言 最近严查security, 导致原来暴露出去的s3不能用了,不允许public的s3,暂时的折中方案是自己做跳转.于是需要在SpringMVC中实现文件下载功能. 关于文件存储的设计 文件存储通 ...
- SpringMVC 实现文件下载
SpringMVC 实现文件下载有两种方式: 常规方法 // 下载后的文件名称String filename = new String("xxx.dox","ISO885 ...
- SpringMVC之文件上传和文件下载
1. 文件上传 在web开发中一般会有文件上传的操作 一般JavaWeb开发中文件上传使用的 Apache组织的Commons FileUpload组件 SpringMVC中使用 Multipart ...
- 基于 Nginx XSendfile + SpringMVC 进行文件下载
转自:http://denger.iteye.com/blog/1014066 基于 Nginx XSendfile + SpringMVC 进行文件下载 PS:经过实际测试,通过 nginx 提供文 ...
- springMVC实现文件下载(附带Servlet方式)
一.Servlet实现方式 import java.io.File; import java.io.IOException; import java.io.OutputStream;import ja ...
最新文章
- html中item属性,项目id(属性) | itemid (attribute)
- MongoDB sharding迁移那些事(一)
- pip install 报错:Versioning for this project requires either an sdist tarball, ...
- QT高级编程之QT基本概览
- tp 数据库查询排序_怎么进行数据库分库分表?
- 基于LiteOS Studio零成本学习LiteOS物联网操作系统
- adb shell 修改文件名_shell修改文件名(一)
- 计算机网络医院拓扑图方案设计,[方案]某医院计算机网络综合布线系统设计
- Shopee菲律宾站如何选品?听Shopee Man本土多店管理系统告诉你
- 同步发电机转子的转动惯量与运动方程(一) 基本物理概念
- 计算机病毒的常用方法,常用计算机检测病毒的方法
- 克罗内克积Kronecker
- mc网站服务器设置家怎么圈地,我的世界怎么圈地 教你设置自己的领地
- Java网课简易飞机大战
- 苹果cmsV10程序无法搜索影片的处理教程
- 新闻资讯类网站的PC端前台模板分享
- 小程序获取视频第一帧
- Android - Broadcast
- Flex Programming Tricks 1
- 【数据结构】小项目:航班查询系统
热门文章
- bzoj4407 于神之怒加强版(莫比乌斯反演+线性筛)
- 【蓝桥杯冲刺 day23】第二点五个不高兴的小明 --- O(n^2)优化思路
- 基于差分进化算法(DE)改进的jDE2 处理约束优化问题
- Java项目:基于jsp+mysql+Spring+SpringMVC+mybatis的爱康医院专家预约管理系统
- android 显示图片和文字,android TextView显示文字和图片
- 净现值NPV(Net Present Value)
- 1455: C语言实验题――数字串求和
- arch linux安装_安装Arch Linux如何使我的旧笔记本电脑重获新生
- 2023第八届少儿模特明星盛典 小超模黄梓曦 担任全球赛代言人
- T-SQL 编程 --值得你看,真香 --- ( 不会真的有人用 SQL 编程吧 )