`

springboot获取src/main/resource下的文件

阅读更多

问题如下:

 

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);
	}

 

 

 

 

 参考链接:https://www.cnblogs.com/Jeremy2001/p/6339945.html

  • 大小: 3.5 KB
  • 大小: 18.8 KB
分享到:
评论

相关推荐

    Springboot访问Resource下的文件.pdf

    在Spring Boot中,我们可以使用`ClassPathResource`或`Resource`类来访问`src/main/resources`目录下的文件。例如,要读取一个名为`file.pdf`的PDF文件,可以这样做: ```java @Autowired private ...

    springboot 兼容映射 vue jsp

    springboot 兼容jsp、vue,并以jar方式打包部署 1.pom --jsp配置、webapp资源配置 2.vue编译打包路径配置 参见 vue配置.md 3.WebMvcConfig路由映射配置 4.项目结构 5.另: 诡异:顺序变了,jsp直接以源码方式返回给...

    Springboot读取本地json文件工程

    在本文中,我们将深入探讨如何在Spring Boot应用中读取本地JSON...在项目结构中,`src`目录通常包含源代码、资源文件等,确保JSON文件位于`src/main/resources`下,这样Spring Boot可以将其打包到应用程序的类路径中。

    Springboot访问Resource下的文件.docx

    #### 知识点二:访问 Resource 下文件的方法 1. **通过 ClassPath 获取资源路径**: - 使用 `ClassPathResource` 类可以方便地从 classpath 中加载资源。 - 示例代码: ```java ClassPathResource resource = ...

    Spring Boot项目打成jar包后,下载resources目录下文件为空的demo

    Spring Boot默认会将`src/main/resources`目录下的内容打包进jar文件,包括静态资源(static)、模板文件(templates)和配置文件。静态资源和模板文件会被放置在一个特殊的结构中,以便于在运行时能够正确地被应用...

    Spring Boot读取resources目录文件方法详解

    按照Maven的习惯,资源文件通常存放在项目的src/main/resources目录下。例如,合同协议PDF模板可以存放在resources/template/test.pdf下。 读取resources目录文件的两种方法 方法一:使用ClassPathResource 使用...

    【建站系统之新零售/网店/商城】spring-boot-seckill-master

    数据库脚本位于 src/main/resource/sql 下面,启动前请自行导入。 配置完成,运行Application中的main方法,访问 http://localhost:8080/seckill/swagger-ui.html 进行API测试。 秒杀商品页:...

    Springboot添加jsp支持

    在Maven项目的`pom.xml`中添加如下配置来确保`src/main/webapp`下的内容被打包到最终的WAR文件中: ```xml &lt;resource&gt; &lt;directory&gt;src/main/resources&lt;/directory&gt; &lt;/resource&gt; &lt;resource&gt; &lt;directory&gt;src/...

    maven profile多环境配置

    Maven Profile 多环境配置 Maven 是一个流行的项目管理工具,广泛应用于 JAVA 相关的项目中。...这样,在构建过程中,Maven 会加载 `src/main/resources/pro` 目录下的配置文件,实现了不同环境加载不同配置的目的。

    基于SpringBoot+Vue实现的竞赛系统.zip

    4. `src/main/webapp`:在某些情况下,Web应用程序的根目录,包括Vue.js的编译后的文件。 5. `src/test/java`:测试代码,可能包含单元测试和集成测试。 6. `pom.xml`:Maven的项目配置文件,定义了依赖关系和构建...

    Spring Boot 读取静态资源文件的方法

    在 Spring Boot 项目中,我们常常需要读取静态资源文件,例如 XML、JSON 等文件,这些文件通常存储在 src/main/resources 目录下。那么,如何在 Spring Boot 项目中读取这些静态资源文件呢?下面我们来详细介绍。 ...

    基于springboot+vue开发的民宿管理系统.zip

    7. **src/main/resources/templates** - Thymeleaf或FreeMarker模板文件,用于视图渲染。 8. **package.json** - Vue项目的配置文件,记录了项目依赖和脚本命令。 9. **vue.config.js** - Vue的配置文件,用于自定义...

    解决SpringBoot打成jar运行后无法读取resources里的文件问题

    在使用SpringBoot进行开发时,我们...通过以上知识点的介绍,我们可以解决SpringBoot应用打成jar包后无法读取resources目录下文件的问题,并且在处理数据时能够更加高效。希望这些内容能对大家在实际开发中有所帮助。

    SpringBoot-maven调用gut生成文件

    在`src/main/resources`下,可以创建配置文件如`application.properties`,以及模板文件用于生成文件。 综上所述,这个项目结合了SpringBoot的灵活性和便利性,利用Maven和Gradle的协同工作能力,实现了文件的生成...

    基于Vue 和 SpringBoot的音乐网站源码.zip

    4. `src/main/webapp`:如果使用传统的MVC模式,此目录下可能会有视图模板。 5. `.gitignore`:定义了版本控制系统忽略的文件和目录,通常包含编译产生的文件和IDE相关的配置。 6. `pom.xml`:SpringBoot项目的构建...

    springboot+mybatis(mybatis dao与xml文件自动生成)

    &lt;sqlMapGenerator targetPackage="com.example.mapper" targetProject="src/main/resources/mapper"&gt; &lt;/sqlMapGenerator&gt; &lt;javaClientGenerator targetPackage="com.example.mapper" targetProject="src/main/...

    Springboot项目与vue项目整合打包的实现方式

    然而,这种方法不推荐使用手工合并,也不推荐将前端代码构建后提交到Springboot的resource下。好的方式应该是保持前后端完全独立开发代码,项目代码互不影响,借助Jenkins这样的构建工具在构建Springboot时触发前端...

    film:springboot+mybatis+bootstrap实现简单电影搜索demo

    打开src/main/resources下的application-dev.yml修改数据库(数据库文件在src/main/resource/sql里)3.修改src/main/resources/static/film/js下的url.js 中的ip/域名为自己的3.启动...

    Springboot项目打war包docker包找不到resource下静态资源的解决方案

    在Spring Boot项目中,开发人员经常遇到一个问题,即在将应用打包成WAR并部署到Docker容器时,无法访问在`src/main/resources`目录下的静态资源。这种情况通常发生在使用内嵌Tomcat作为应用服务器的Spring Boot应用...

    SpringBoot2制作成Window服务的方法.docx

    &lt;directory&gt;src/main/java&lt;/directory&gt; **/*.xml&lt;/include&gt; *.properties&lt;/include&gt; &lt;/includes&gt; &lt;filtering&gt;false&lt;/filtering&gt; &lt;/resource&gt; &lt;resource&gt; &lt;filtering&gt;true&lt;/filtering&gt; &lt;directory&gt;src/...

Global site tag (gtag.js) - Google Analytics