当前位置: 首页 > 知识库问答 >
问题:

使用Vaadin 14显示的图像

法浩壤
2023-03-14

我写这篇文章是因为我需要一些帮助。我无法根据应用程序中的特定路径显示图像。

基本上它在做什么:我有一个名为扇区的模块,每个扇区都可以有一个与之相关的图像。当我使用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());
        });

共有1个答案

傅宏恺
2023-03-14

我认为您正在使用刷新视图时丢弃的内存资源。您必须获取文件的内容并将其保存在服务器文件系统目录中的文件中。这是一个示例:

FileBuffer receiver = new FileBuffer();
Upload upload = new Upload(receiver);
upload.setAcceptedFileTypes("text/plain");
upload.addSucceededListener(event -> {
    try {
      InputStream in = receiver.getInputStream();
      File tempFile = receiver.getFileData().getFile();
      File destFile = new File("/some/directory/" + event.getFileName());
      FileUtils.moveFile(tempFile, destFile);
      
    } catch (IOException e) {
      e.printStackTrace();
      Notification.show("Error").
    }
});
 类似资料:
  • 问题内容: 如何显示在PHP中使用file_get_contents检索到的图像? 我需要修改标题并仅回显它吗? 谢谢! 问题答案: 我需要修改标题并仅回显它吗? 究竟。 之后发送和数据。

  • 问题内容: 我从网络根目录外部显示图像,如下所示: 内容类型:image / png使我感到困惑。 有人用此代码帮助了我,但我注意到并非所有图像都是PNG。许多是jpg或gif。 仍然可以成功显示它们。 有人知道为什么吗? 问题答案: 最好的解决方案是读取文件,然后确定它是哪种图像并发送适当的标头 (注意:JPG文件的正确内容类型是)

  • 问题内容: 我正在尝试通过JavaScript显示图像,但是我不知道该怎么做。我有以下 在HTML中 我不知道该在哪里放类似的东西。 HTML?或者别的地方… 问题答案: 您可以使用Javascript DOMAPI。特别是,请查看createElement()方法。 您可以创建一个可重复使用的函数,以创建一个像这样的图像… 然后您可以像这样使用它…

  • 这是我的代码,创建一个应用程序,显示下一个图像时,点击,我有麻烦创建一个动态显示,它崩溃的点击图像。 java文件:

  • 问题内容: 我有一个PHP脚本,它会随机生成一个图像。像这样: 我的html看起来像这样: 然后,我有一个jquery文件来处理对按钮的单击,以便在单击按钮时加载新的随机图像: 我使用firebug,可以看到请求实际上已发送,并且响应已成功接收,但是图像没有改变。 我在做什么错,我该如何解决? 问题答案: 我添加了另一个答案,因为我认为以前的答案都无法解决问题。我认为,OP唯一想要的就是单击按钮时

  • 问题内容: 我想显示图像,但不知道该怎么办。我是否需要安装某些库文件还是简单地完成安装,我不知道。实际上我想进行图像处理,但是首先我必须接受图像输入并显示图像,然后才能获得图像处理的效果作为输出并确定其(算法)是否正确。我只安装了eclipse。我也曾在Google中搜索过,但是无论他们提出什么建议都无法正常工作。我是否必须安装某些东西。 我尝试了以下代码: 它只是显示一个图形窗口,而不能显示图像