通常来说,当我们给浏览器一个文件的路径,当那个文件能够被浏览器直接打开的话,浏览器就直接打开,如果浏览器无法直接打开那么浏览器就会提示用户可以下载这个文件
现在我们要做的事情是让浏览器直接提示用户可以下载文件
1、在前端提示可以下载的超链接指的是后端的控制器
2、获取要下载文件的输入流对象
3、将要下载的文件读取到字节数组中
获取目标文件的长度 inputStream.available()
根据目标文件长度创建字节数组 buffer = new byte[len]
将目标文件读取到字符数组中 inputStream.read(buffer)
4、封装响应消息头
创建MultivalueMap接口类型的对象,实现类是HttpHeaders
存入下载文件所需要的响应消息头
创建ResponseEntity对象
5、返回responseEntity对象
总结:主要就是需要返回responseEntity对象 找到对应的形参 比如说 文件字节 消息响应消息头 还有一个枚举类常量 HttpStatus.OK
场景:这种实现方式是一个较为简单的下载
1、零星小文件的下载
2、将系统内部文件导出为Excel,PDF 然后以下载的方式返回给用户
标签:文件,浏览器,字节,springMVC,对象,数组,下载 From: https://www.cnblogs.com/jiang-kai/p/17045264.html