场景:springboot打成jar包,类中获取jar包中/static/***.doc文件
本地测试没问题,路径完全没问题,但是服务器启动路径会带叹号,不知道原因为什么?原以为是叹号的问题,replace掉不管用。百度了一下是取文件的方式不正确。
改成下面这种方式就没问题了。有问题欢迎评论。不支持私聊。评论即可。
@RequestMapping(value = "/download/{fileName}")
public void downloadFile(@PathVariable String fileName, HttpServletRequest request, HttpServletResponse response) {
response.setCharacterEncoding(request.getCharacterEncoding());
response.setContentType("application/octet-stream");
FileInputStream fis = null;
try {
ClassPathResource classPathResource = new ClassPathResource("static/" + fileName + ".pdf");
InputStream inputStream = classPathResource.getInputStream();
try {
IOUtils.copy(inputStream, response.getOutputStream());
response.flushBuffer();
} finally {
IOUtils.closeQuietly(inputStream);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}