【发布时间】:2023-03-28 15:35:01
【问题描述】:
我写这篇文章是因为我需要一些帮助。 我无法根据应用程序中的特定路径显示图像。
基本上它在做什么:我有一个名为 Sector 的模块,每个 Sector 都可以有一个与之相关的图像。当我使用 Vaadin 的 Upload 组件时,我将图像的路径保存到我的数据库中的一个表中,以便它可以显示之前选择的图片。
图片的实际路径很奇怪,好像是 Vaadin 将图片复制到了一个动态随机文件夹中。它不能使用图像的实际路径似乎是合乎逻辑的。
但问题是:路径在数据库中输入正确,但是当我重新加载页面 (F5) 时,Vaadin 无法再显示图像。这让我很不高兴,因为它应该很好地显示出来。
Vaadin 使用上传的图片创建的路径:VAADIN/dynamic/resource/2/c1ef7b9d-8f2b-4354-a97e-fe1fd4e868e7/551434.jpg
如果有帮助,我可以放一些代码。
屏幕截图显示了我刷新浏览器页面后它在做什么。
这是我处理上传图片的代码部分:
upload.addSucceededListener(e -> {
Component component = createComponent(e.getMIMEType(),
e.getFileName(), buffer.getInputStream());
showOutput(e.getFileName(), component, output);
//imgUpload = (Image) component;
InputStream inputStream = buffer.getInputStream();
targetFile = new File(PATH + currentProjetId + "\\secteur" + currentSecId + "\\photoSec.png");
try {
FileUtils.copyInputStreamToFile(inputStream, targetFile);
} catch (IOException e1) {
e1.printStackTrace();
Notification.show("Error");
}
System.out.println("PATH : " + targetFile.getPath());
});
【问题讨论】:
-
您必须存储上传的图像。这只是一个临时网址
-
您能否修改问题并分享您如何处理上传的代码?
-
我已经添加了处理上传的代码部分。
标签: java image upload vaadin vaadin14