我喜欢从 web/images
目录访问图像。我喜欢在 spring Controller
中访问此图像,因此我可以将此图像转换为 byte[]
。我正在创建一个图表,该图像是图表显示的一部分。因此,我使用这个 byte[]
来构造 Graphic2d 对象
。我最接近的是使用这个:
FileSystemResource resource = new FileSystemResource("images/"+imageName);
目前,我已将此图像存储在包结构中。我喜欢做得比这更好。我喜欢直接从 web/images
目录中读取。请给我一些建议,谢谢。
最佳答案
更优雅的方法是让你的 Controller 实现ServletContextAware
,这样你的 Controller 就可以注入(inject)ServletContext
实例,那么你应该使用:
InputStream stream = servletContext.getResourceAsStream("/images/image.jpg");
int bytesRead;
byte[] buffer = new byte[8192];
while ((bytesRead = stream.read(buffer, 0, 8192)) != -1) {
//process image data, i.e. write to sompe place,etc.
}
//close the stream
stream.close();
顺便说一句,对于servletContext.getRealPath,不同的servlet容器可能有不同的实现,项目打包成war文件后可能不起作用。所以,推荐使用getResourceAsStream。
关于java - 如何在Spring应用程序中访问图像文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25519595/