问题如下:
maven构建的springboot工程下的,文件路径
希望web端能够下载这里的“assess_remplate.docx”文件。
解决:
1、通过resource获取到文件
ClassPathResource resource = new ClassPathResource("docs/assess_template.docx"); File file = resource.getFile();
2、但是springboot工程打成jar包后,file是无法从jar包内的路径拿到的。程序会抛出异常:
3、改用输入流去获取。
ClassPathResource resource = new ClassPathResource("docs/assess_template.docx"); InputStream inputStream = resource.getInputStream();
4、然后需要将字节流转为字节数组。通过ResponseEntity<byte[]>返回到web端。
@GetMapping("/assess_template") public ResponseEntity<byte[]> download(HttpServletResponse response) throws Exception { ClassPathResource resource = new ClassPathResource("docs/assess_template.docx"); InputStream inputStream = resource.getInputStream(); ByteArrayOutputStream swapStream = new ByteArrayOutputStream(); byte[] buff = new byte[100]; int rc = 0; while ((rc = inputStream.read(buff, 0, 100)) > 0) { swapStream.write(buff, 0, rc); } byte[] in2b = swapStream.toByteArray(); HttpHeaders headers = new HttpHeaders(); String downloadFielName = new String("assess_template.docx".getBytes("UTF-8"), "iso-8859-1"); headers.setContentDispositionFormData("attachment", downloadFielName); headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); return new ResponseEntity<byte[]>(in2b, headers, HttpStatus.CREATED); }
相关推荐
在Spring Boot中,我们可以使用`ClassPathResource`或`Resource`类来访问`src/main/resources`目录下的文件。例如,要读取一个名为`file.pdf`的PDF文件,可以这样做: ```java @Autowired private ...
springboot 兼容jsp、vue,并以jar方式打包部署 1.pom --jsp配置、webapp资源配置 2.vue编译打包路径配置 参见 vue配置.md 3.WebMvcConfig路由映射配置 4.项目结构 5.另: 诡异:顺序变了,jsp直接以源码方式返回给...
在本文中,我们将深入探讨如何在Spring Boot应用中读取本地JSON...在项目结构中,`src`目录通常包含源代码、资源文件等,确保JSON文件位于`src/main/resources`下,这样Spring Boot可以将其打包到应用程序的类路径中。
在使用SpringBoot进行开发时,我们...通过以上知识点的介绍,我们可以解决SpringBoot应用打成jar包后无法读取resources目录下文件的问题,并且在处理数据时能够更加高效。希望这些内容能对大家在实际开发中有所帮助。
#### 知识点二:访问 Resource 下文件的方法 1. **通过 ClassPath 获取资源路径**: - 使用 `ClassPathResource` 类可以方便地从 classpath 中加载资源。 - 示例代码: ```java ClassPathResource resource = ...
Spring Boot默认会将`src/main/resources`目录下的内容打包进jar文件,包括静态资源(static)、模板文件(templates)和配置文件。静态资源和模板文件会被放置在一个特殊的结构中,以便于在运行时能够正确地被应用...
数据库脚本位于 src/main/resource/sql 下面,启动前请自行导入。 配置完成,运行Application中的main方法,访问 http://localhost:8080/seckill/swagger-ui.html 进行API测试。 秒杀商品页:...
在Maven项目的`pom.xml`中添加如下配置来确保`src/main/webapp`下的内容被打包到最终的WAR文件中: ```xml <resource> <directory>src/main/resources</directory> </resource> <resource> <directory>src/...
按照Maven的习惯,资源文件通常存放在项目的src/main/resources目录下。例如,合同协议PDF模板可以存放在resources/template/test.pdf下。 读取resources目录文件的两种方法 方法一:使用ClassPathResource 使用...
Maven Profile 多环境配置 Maven 是一个流行的项目管理工具,广泛应用于 JAVA 相关的项目中。...这样,在构建过程中,Maven 会加载 `src/main/resources/pro` 目录下的配置文件,实现了不同环境加载不同配置的目的。
4. `src/main/webapp`:在某些情况下,Web应用程序的根目录,包括Vue.js的编译后的文件。 5. `src/test/java`:测试代码,可能包含单元测试和集成测试。 6. `pom.xml`:Maven的项目配置文件,定义了依赖关系和构建...
在 Spring Boot 项目中,我们常常需要读取静态资源文件,例如 XML、JSON 等文件,这些文件通常存储在 src/main/resources 目录下。那么,如何在 Spring Boot 项目中读取这些静态资源文件呢?下面我们来详细介绍。 ...
7. **src/main/resources/templates** - Thymeleaf或FreeMarker模板文件,用于视图渲染。 8. **package.json** - Vue项目的配置文件,记录了项目依赖和脚本命令。 9. **vue.config.js** - Vue的配置文件,用于自定义...
在`src/main/resources`下,可以创建配置文件如`application.properties`,以及模板文件用于生成文件。 综上所述,这个项目结合了SpringBoot的灵活性和便利性,利用Maven和Gradle的协同工作能力,实现了文件的生成...
4. `src/main/webapp`:如果使用传统的MVC模式,此目录下可能会有视图模板。 5. `.gitignore`:定义了版本控制系统忽略的文件和目录,通常包含编译产生的文件和IDE相关的配置。 6. `pom.xml`:SpringBoot项目的构建...
然而,这种方法不推荐使用手工合并,也不推荐将前端代码构建后提交到Springboot的resource下。好的方式应该是保持前后端完全独立开发代码,项目代码互不影响,借助Jenkins这样的构建工具在构建Springboot时触发前端...
<sqlMapGenerator targetPackage="com.example.mapper" targetProject="src/main/resources/mapper"> </sqlMapGenerator> <javaClientGenerator targetPackage="com.example.mapper" targetProject="src/main/...
打开src/main/resources下的application-dev.yml修改数据库(数据库文件在src/main/resource/sql里)3.修改src/main/resources/static/film/js下的url.js 中的ip/域名为自己的3.启动...
在Spring Boot项目中,开发人员经常遇到一个问题,即在将应用打包成WAR并部署到Docker容器时,无法访问在`src/main/resources`目录下的静态资源。这种情况通常发生在使用内嵌Tomcat作为应用服务器的Spring Boot应用...
<directory>src/main/java</directory> **/*.xml</include> *.properties</include> </includes> <filtering>false</filtering> </resource> <resource> <filtering>true</filtering> <directory>src/...