Java 如何在spring应用程序中访问图像文件夹
我喜欢从Java 如何在spring应用程序中访问图像文件夹,java,spring,Java,Spring,我喜欢从web/images目录访问图像。我喜欢在spring控制器中访问此图像,因此我可以将此图像转换为字节[]。我正在创建图表,此图像是图表显示的一部分。因此,我使用这个字节[]来构造图形2D对象。我最接近它的是使用这个: FileSystemResource resource = new FileSystemResource("images/"+imageName); 目前,我已将此图像存储在包结构中。我喜欢做得比这更好。我喜欢直接从web/images目录中阅读。请给我一些建议,谢谢。
web/images
目录访问图像。我喜欢在spring控制器中访问此图像
,因此我可以将此图像转换为字节[]
。我正在创建图表,此图像是图表显示的一部分。因此,我使用这个字节[]
来构造图形2D对象
。我最接近它的是使用这个:
FileSystemResource resource = new FileSystemResource("images/"+imageName);
目前,我已将此图像存储在包结构中。我喜欢做得比这更好。我喜欢直接从
web/images
目录中阅读。请给我一些建议,谢谢。您可以使用servlet上下文
获取web/images
的路径。使用以下代码:
File file=new File(request.getSession().getServletContext().getRealPath("images/file.jpg"));
注意:这里我使用的是
request
,即HttpServletRequest
更优雅的方法是让您的控制器实现ServletContextAware
,以便您的控制器可以注入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。
getRealPath
不可移植正在生成图像吗?如果没有,你可以使用。即使生成了图像,也可以使用它,但您必须知道它的名称。