如果 inputStream 为null ,或者提示 文件路径不存在,执行 mvn clean 并 重启项目,查看target 目录下是否存在该文件
@GetMapping("/download") public void download(HttpServletResponse response) { try { String filename = "测试.xls"; OutputStream outputStream = response.getOutputStream(); // 获取springboot resource 路径下的文件 InputStream inputStream = this.getClass().getResourceAsStream("/excel/text.xls"); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment;fileName=" + new String(filename.getBytes("utf-8"), "iso-8859-1")); IOUtils.copy(inputStream, outputStream); inputStream.close(); outputStream.flush(); } catch (Exception e) { throw new ResponseStatusException(HttpStatus.INTERNAL_SERVER_ERROR, e.toString()); } }
pom 添加如下,否则 excel文件中文乱码,以及各种莫名其妙的问题
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.6</version> <configuration> <encoding>UTF-8</encoding> <nonFilteredFileExtensions> <nonFilteredFileExtension>xls</nonFilteredFileExtension> <nonFilteredFileExtension>xlsx</nonFilteredFileExtension> <nonFilteredFileExtension>dat</nonFilteredFileExtension> </nonFilteredFileExtensions> </configuration> </plugin>```