Vaadin14 访问Vaadin 14/RapidclipseX IMG组件中的本地资源(本地目录-项目外部)
如何从映像组件中的“我的硬盘驱动器外部项目文件夹”访问本地映像文件以创建映像库?如何写入文件的路径?在瓦丁14/RapidclipseX 它只从项目或URL获取路径。在我的项目中,用户必须上传图片,我想制作一个展示图片的图库 我尝试了以下所有方法,但没有成功:Vaadin14 访问Vaadin 14/RapidclipseX IMG组件中的本地资源(本地目录-项目外部),vaadin14,rapidclipse,Vaadin14,Rapidclipse,如何从映像组件中的“我的硬盘驱动器外部项目文件夹”访问本地映像文件以创建映像库?如何写入文件的路径?在瓦丁14/RapidclipseX 它只从项目或URL获取路径。在我的项目中,用户必须上传图片,我想制作一个展示图片的图库 我尝试了以下所有方法,但没有成功: D:\\Canavans\\Reports\\256456\\424599_320943657950832_475095338_n.jpg D:\Canavans\Reports\256456\424599_320943657950832
D:\\Canavans\\Reports\\256456\\424599_320943657950832_475095338_n.jpg
D:\Canavans\Reports\256456\424599_320943657950832_475095338_n.jpg
代码也尝试了这种方式:
for(final File file: files)
{
System.out.println(file.getName());
this.log.info(file.getName());
this.log.info(file.getAbsolutePath());
final String path = "file:\\\\" + file.getAbsolutePath().replace("\\", "\\\\");
this.log.info(path);
final Image img = new Image();
img.setWidth("300px");
img.setHeight("300px");
img.setSrc("file:\\\\D:\\\\Canavans\\\\Reports\\\\256456\\\\IMG20171002142508.jpg");
this.flexLayout.add(img);
}
请帮忙!提前谢谢。或者有没有其他方法来创建图像库?Hmm据我所知,如果您想访问资源文件夹之外的资源,您可以创建一个StreamResource并用它初始化图像。如果要使用images src属性,则文件必须位于Vaadin的一个资源文件夹内,例如“webapp”文件夹 下面是一个关于如何使用StreamResource创建图像的简单示例:
final StreamResource imageResource = new StreamResource("MyResourceName", () -> {
try
{
return new FileInputStream(new File("C:\\Users\\Test\\Desktop\\test.png"));
}
catch(final FileNotFoundException e)
{
e.printStackTrace();
return null;
}
});
this.add(new Image(imageResource, "Couldn't load image :("));
希望这有助于: