Java读取Resources目录下的文件发送至前端
JAVA读取resources目录下的templates文件,将文件以二进制流的方式发送至前端页面。
// 获取需要展示的文件位置,以二进制流发送至前端
@ApiOperation(value = "获取需要展示的政策文件", notes = "需要展示的政策文件", httpMethod = "GET")
@GetMapping("/readFile")
public void getReadFile(HttpServletResponse response, String fileName) {
try {
Resource resource = new ClassPathResource("templates/" + fileName);
File file = resource.getFile();
if (file.exists()) {
byte[] data = null;
FileInputStream input = new FileInputStream(file);
data = new byte[input.available()];
input.read(data);
// 根据文件类型,设置文件Content-Type
String fileType = fileName.substring(fileName.lastIndexOf(".")).toUpperCase();
// 设置Content-Type头
switch (fileType) {
case ".JPG":
response.setContentType("image/jpeg");
break;
case ".JPEG":
response.setContentType("image/jpeg");
break;
case ".PNG":
response.setContentType("image/png");
break;
case ".PDF":
response.setContentType("application/pdf");
break;
case ".DOC":
response.setContentType("application/msword");
break;
default:
response.setContentType("application/json");
}
response.getOutputStream().write(data);
input.close();
}
} catch (IOException e) {
e.printStackTrace();
// 抛出自定义异常
throw new CustomException("文件不存在");
}
}
接口调用
![在这里插入图片描述](https://img-blog.csdnimg.cn/f0735f4adf2044c2845c08b1fe108a8c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5Yqq5Yqb5pCs56CW55qEZ2lzZXI=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)