springMVC文件下载

通常来说,当我们给浏览器一个文件的路径,当那个文件能够被浏览器直接打开的话,浏览器就直接打开,如果浏览器无法直接打开那么浏览器就会提示用户可以下载这个文件

现在我们要做的事情是让浏览器直接提示用户可以下载文件

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 然后以下载的方式返回给用户

    

 

 

 

 

posted @   那就叫小白吧  阅读(312)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示