springboot 应用中静态资源下载
一. 场景介绍
- Excel模板静态资源在,应用中的static文件夹中,文件名称包含中文;
- 需求:页面直接访问下载Excel模板.
二.目录结构
三.后台代码
1 @GetMapping("/downloadTemplateForUserTest") 2 @ResponseBody 3 public void downloadLocal(HttpServletResponse response) throws Exception { 4 /** 获取静态文件的路径 .*/ 5 String path = ResourceUtils.getURL("classpath:").getPath() + "static/js/CRM_客户_导入模板.xlsx"; 6 7 /** 获取文件的名称 . */ 8 String fileName = path.substring(path.lastIndexOf("/") +1); 9 File file = new File(path); 10 if (!file.exists()){ 11 logger.error("路径有误,文件不存在!"); 12 } 13 14 /** 将文件名称进行编码 */ 15 response.setHeader("content-disposition","attachment;filename=" + URLEncoder.encode(fileName,"UTF-8")); 16 response.setContentType("content-type:octet-stream"); 17 BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(file)); 18 OutputStream outputStream = response.getOutputStream(); 19 byte[] buffer = new byte[1024]; 20 int len; 21 while ((len = inputStream.read(buffer)) != -1){ /** 将流中内容写出去 .*/ 22 outputStream.write(buffer ,0 , len); 23 } 24 inputStream.close(); 25 outputStream.close(); 26 }
2019-04-19 16:49:19 -- 1.0v
二.在服务器端使用上述方法的时候,文件路径找不到
错误:\C\Users\hzcuixiaoqing.m2\repository\com\netease\qa\cloudqa\nfit \0.1.0\nfit-0.1.0.jar!\cmdline_config_CPU.txt,服务器中获取静态文件时出现!号
分析定位原因:读取路径出现了"!",在网上找了很多的资料
1 @GetMapping("/downloadTemplateForUser") 2 @ResponseBody 3 public void downloadTemplateForUser(HttpServletResponse response) throws Exception { 4 String path = "/static/excel/导入到课程顾问模板.xlsx" ; 5 String fileName = path.substring(path.lastIndexOf("/") + 1); 6 downExcelTemplate(response, path, fileName); 7 return; 8 9 } 10 11 private void downExcelTemplate(HttpServletResponse response, String path, String fileName) throws IOException { 12 /** 将文件名称进行编码 */ 13 response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); 14 response.setContentType("content-type:octet-stream"); 15 /** 读取服务器端模板文件*/ 16 InputStream inputStream = DownloadFileController.class.getResourceAsStream(path); 17 18 /** 将流中内容写出去 .*/ 19 OutputStream outputStream = response.getOutputStream(); 20 byte[] buffer = new byte[1024]; 21 int len; 22 while ((len = inputStream.read(buffer)) != -1) { 23 outputStream.write(buffer, 0, len); 24 } 25 inputStream.close(); 26 outputStream.close(); 27 }
使用上述的方法,可以解决服务器端的路径问题.
2019-05-06 --v1.1
转载于:https://www.cnblogs.com/djq-jone/p/10737946.html
springboot 应用中静态资源下载相关推荐
- SpringBoot项目中静态资源加载失败,那可能是自定义配置类继承了WebMvcConfigurationSupport这个类
1.跟着视频课学SpringBoot,自己的一个html登录页面就是在浏览器中渲染不出来效果,很郁闷.我的项目结构如下: 2.想要打开login.html页面,该页面用到了静态资源中的css文件及sv ...
- 玩转springboot:默认静态资源和自定义静态资源实战
点个赞,看一看,好习惯!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了3个月总结的一线大厂Java面试总结,本人已拿腾 ...
- 就SpringBoot+thymeleaf实现静态资源访问的实现
就SpringBoot+thymeleaf实现静态资源访问的实现 露珠第一次接触SpringBoot,但是以前都是用的SpringMVC,于是乎在前后端分离开发的静态页面加载的方法上有所疑问,于是乎就 ...
- Spring MVC中静态资源的处理
Spring MVC中静态资源的处理 REST风格的资源URL中不带后后缀,比如 /blog/tom -> 用户tom的blog资源 /order/1234 -> 订单号为1234的订单资 ...
- spring mvc 中静态资源404、302错误
[求教]spring mvc 中静态资源404.302错误 (2019/3/22补充)在新的项目中也偶尔遇到资源被拦截的情况(前提我已经设置了各种静态资源不被拦截的措施),至今仍然没能找到具体原因,所 ...
- SpringBoot 读取项目中静态资源文件
目录 一. ClassPathResource 二. DefaultResourceLoader 三. PathMatchingResourcePatternResolver 四. ResourceU ...
- SpringBoot中静态资源和首页定制
在SpringBoot的标准项目中的resource目录如下 官方默认把我们的静态资源放到了static目录下,在该目录下写一个index.html即可直接访问,我们还可以在resources目录下创 ...
- SpringBoot加载静态资源
在SpringBoot中加载静态资源和在普通的web应用中不太一样.默认情况下,Spring Boot从classpath下一个叫/static(/public,/resources或/META-IN ...
- SpringBoot cache-control 配置静态资源缓存 (以及其中的思考经历)
昨天在部署项目时遇到一个问题,因为服务要部署到外网使用,中间经过了较多的网络传输限制,而且要加载arcgis等较大的文件,所以在部署后,发现页面loading需要很长时间,而且刷新也要重新从服务器下载 ...
最新文章
- Oracle中的in 和 not in
- javaSE各阶段练习题--工具类-常用类-递归-包装类-内部类
- C#开发终端式短信的原理和方法 .
- java面试题_2020年1-6月份Java面试题总结,20多类1100道面试题含答案解析
- [python]python pandas 模块
- 使用多线程提高Rest服务性能
- windows 2012 抓明文密码方法
- dynamips中网卡参数如何和网络连接中的具体网卡匹配
- CTF杂项题解题思路与方法
- 与硅谷完全不同,非洲的人工智能产业是这样的……
- Camunda流程引擎及表结构认识
- 使用Lua GD库动态生成验证码图片(2)
- 我为什么要离开传智再去创业?
- php12生肖是哪个,十二生肖对应的数字
- 加菲猫语录精选74 中英俄三语版
- Skype应用将在7月1日停止支持Windows Phone 8/8.1等系统
- 数据分析领域不同职位de薪酬职能差异
- DIY单片机串口打印函数print
- Linux常用指令---系统负载
- Linux 安装Redis 图解教程
热门文章
- qt中socket通信流程图_使用QT实现简单的tcp/ip通信
- mysql8jdbc连接串_mysql8 JDBC连接注意事项
- 教学一体机属于计算机的什么应用,教学一体机可以投屏吗
- 通过jquery获取td下的input标签的值,并且改变onclick的参数值
- 字节跳动学习笔记:javaweb商城项目
- java课程设计总结与思考,你掌握了多少?
- 从入门到精通的Java进阶学习笔记整理,不愧是大佬
- 机器学习(MACHINE LEARNING)多属性决策模型
- python【Matlibplot绘图库】画图种类(真の能看懂~!)
- mysql内置乐观锁吗_mysql 乐观锁详解