java mvc下载文件_Springmvc实现文件下载2种实现方法
使用springmvc实现文件下载有两种方式,都需要设置response的Content-Disposition为attachment;filename=test2.png
第一种可以直接向response的输出流中写入对应的文件流
第二种可以使用 ResponseEntity来向前端返回文件
一、使用response
@RestController
@RequestMapping("/download")
public class DownloadController {
@RequestMapping("/d1")
public ResultVo downloadFile(HttpServletResponse response){
String fileName="test.png";
try {
//获取页面输出流
ServletOutputStream outputStream = response.getOutputStream();
//读取文件
byte[] bytes = FileUtils.readFileToByteArray(new File("D:\\my-study\\test2.png"));
//向输出流写文件
//写之前设置响应流以附件的形式打开返回值,这样可以保证前边打开文件出错时异常可以返回给前台
response.setHeader("Content-Disposition","attachment;filename="+fileName);
outputStream.write(bytes);
outputStream.flush();
outputStream.close();
return ResultVoUtil.success("success");
} catch (IOException e) {
return ResultVoUtil.error(e);
}
}
}
推荐使用这种方式,这种方式可以以json形式给前台返回提示信息。
二、使用ResponseEntity
@Controller
@RequestMapping("/download2")
public class DownloadController2 {
private final static Logger logger= LoggerFactory.getLogger(CategoryDataController.class);
@GetMapping("/d2")
public ResponseEntity download2(){
//获取文件对象
try {
byte[] bytes = FileUtils.readFileToByteArray(new File("D:\\my-study\\bill-admin\\test2.png"));
HttpHeaders headers=new HttpHeaders();
headers.set("Content-Disposition","attachment;filename=test2.png");
ResponseEntity entity=new ResponseEntity<>(bytes,headers,HttpStatus.OK);
return entity;
} catch (IOException e) {
logger.error("下载出错:",e);
return null;
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
java mvc下载文件_Springmvc实现文件下载2种实现方法相关推荐
- Java多线程下载文件
Java多线程下载文件 优化:合理利用服务器资源,将资源利用最大化,加快下载速度 一般有两种方式: 线程池里面有N个线程,多线程下载单个文件,将网络路径的文件流切割成多快,每个线程下载一小部分,然后写 ...
- java线程下载文件_Java多线程下载文件实例详解
本文实例为大家分享了Java多线程下载文件的具体代码,供大家参考,具体内容如下 import java.io.File; import java.io.InputStream; import java ...
- 7z解压crc错误_百度网盘压缩下载文件的CRC校验错误的解决方法
转载自:http://blog.sina.com.cn/s/blog_610787990102xcnv.html 百度网盘压缩下载文件的CRC校验错误的解决方法 从百度网盘用打包压缩方式下载的文件在解 ...
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
- 百度网盘压缩下载文件的CRC校验错误的解决方法
转载自:http://blog.sina.com.cn/s/blog_610787990102xcnv.html 百度网盘压缩下载文件的CRC校验错误的解决方法 从百度网盘用打包压缩方式下载的文件在解 ...
- php保存文件和下载文件到本地的四种方法
php保存文件和下载文件到本地的四种方法 本文操作环境:windows7系统.PHP7.1版,DELLG3电脑 php保存文件的方法 PHP下载保存文件到本地 经常需要点击按钮,然后弹 ...
- Java如何读取文件文本内容的几种方式汇总
本文为joshua317原创文章,转载请注明:转载自joshua317博客 Java如何读取文件文本内容的几种方式汇总 - joshua317的博客 package com.joshua317;imp ...
- common-io-2.0的新功能之文件监控FileAlteration(文件监听的两种实现方法《很全的监听文件例子》)...
common-io-2.0的新功能之文件监控FileAlteration(文件监听的两种实现方法<很全的监听文件例子>) 转载于:https://www.cnblogs.com/rocky ...
- 计算机不能再U盘新建文件夹,U盘无法建立新的文件夹?!三种小方法教你解决...
原标题:U盘无法建立新的文件夹?!三种小方法教你解决 U盘是现代人常用的移动存储设备之一,特点是小巧易携带,容量大,因此深得用户喜欢.但是这小小的U盘一旦出现故障,就让人有点难以招架了,U盘不比电脑, ...
最新文章
- linux ngxtop安装安装及使用
- SSL 1055——能量项链_DP
- RSA非对称加密算法的安全性何在
- 阮一峰react demo代码研究的学习笔记 - demo5 debug
- 学用状态机模式,写的报销流程,请指教
- C#.NET根据数据库中0,1返回对应代表含义“男”,“女”等问题
- ros操作系统的介绍
- OneDrive文件数限制:150000
- 案例:模拟京东快递单号的查询效果
- c语言字符结构数组初始化,C语言结构体数组初始化问题
- 工作展望简短_工作展望简短_时间2017工作展望
- 未明学院:国际政治专业出身,如何pk掉港大、美籍商科生,拿下亚马逊市场部德勤offer!
- 唯品会测试工程师面试总结
- mysql安装,以及初始化密码
- oracle重复名字,oracle中的名字(names for oracle)
- Get Offer —— 能力素质考核训练
- MySQL连接配置文件密码加密以及解密
- centos java 安装
- 打印系统开发(24)——WinForm开发(45)——winform打印,自己设置打印纸张大小例如500*800px。应该怎么做呢?
- HT780S 编程软件 官方版 v1.07.04
热门文章
- Python求解进制问题(阿里巴巴2015笔试题)
- java注册系统服务_奇葩需求:springboot项目注册为windows系统服务并设置开机自启...
- JDBC中Statement接口提供的execute、executeQuery和executeUpdate之间的区别
- xp访问服务器显示没有权限,xp无法访问2008R2共享
- activeti user guide 中文_【澳洲大岩石】最好季节发团!省掉800澳币!无比震撼特价 再次应约出发 震撼之旅!一生难忘!全程中文导游!省心放心澳洲青年旅行社...
- php无限极,PHP无限极分类
- wincc怎么做一个弹出画面_wincc怎样弹出确认窗口?
- PHP编写增功能思路,php ztree如何实现增 删 改
- unity fixedupdate_Unity之滚球游戏(上)
- p10可以适配鸿蒙吗,鸿蒙系统支持旧机型吗