我正在尝试为Vaadin使用EasyUploads插件,但无法显示图像。
当我点击插件的“选择文件”按钮时,它会要求我打开一个文件。我从我的图片中选择了一些.png文件,插件显示了它下面图片的信息。
然后我按下我的“上传”按钮,这是目前需要的,只是为了首先显示上传的图像。
private void showUploadedImage() {
Object value = upload.getValue();
byte[] data = (byte[]) value;
StreamResource resource = new StreamResource(
new StreamResource.StreamSource() {
private static final long serialVersionUID = 1L;
@Override
public InputStream getStream() {
return new ByteArrayInputStream(data);
}
}, "filename.png");
image.setVisible(true);
image.setCaption("Uploaded image");
image.setSource(resource);
}
upload=EasyUpload用于选择文件的组件
图像=我与设计师一起绘制到布局中的嵌入组件。
但当我用浏览器查看页面时,图像没有显示。图像只是显示,因为根本没有图像,只会显示标题。
页面源中图像的HTML代码:
<img src="null">
这可能是一个非常琐碎的案例,但是我找到的所有例子都超过3-4年了,看起来没有帮助。
有人能告诉我该怎么做吗?
您需要在UploadField类上调用setter:
uploadField.setFieldType(FieldType.BYTE_ARRAY);
工作SSCCE:
@Override
protected void init(VaadinRequest request) {
setContent(layout);
final UploadField uploadField = new UploadField();
uploadField.setAcceptFilter(".png");
uploadField.setFieldType(FieldType.BYTE_ARRAY);
uploadField.addListener(new Listener(){
@Override
public void componentEvent(Event event)
{
showUploadedImage(uploadField);
}
});
layout.addComponent(uploadField);
layout.addComponent(image);
}
private void showUploadedImage(UploadField upload) {
Object value = upload.getValue();
final byte[] data = (byte[]) value;
StreamResource resource = new StreamResource(
new StreamResource.StreamSource() {
@Override
public InputStream getStream() {
return new ByteArrayInputStream(data);
}
}, "filename.png");
image.setSource(resource);
}
当然,您可能希望将uploadField侦听器的类型更改为更具体的类型。在Java 8、Vaadin 7.4.1和Eclipse Luna上测试。
我写这篇文章是因为我需要一些帮助。我无法根据应用程序中的特定路径显示图像。 基本上它在做什么:我有一个名为扇区的模块,每个扇区都可以有一个与之相关的图像。当我使用Vaadin的上传组件时,我将图像的路径保存到我数据库中的一个表中,以便它可以显示之前选择的图片。 图像的实际路径很奇怪,似乎瓦丁将图像复制到了一个动态随机文件夹中。它不能使用图像的实际路径,这似乎是合乎逻辑的。 但问题是:路径在数据库中
我想用谷歌可视化应用编程接口显示条形图。我遵循了这个线程中的示例代码:https://vaadin.com/forum/#!/thread/2971952/ 这是我的代码: GVis。JAVA gvis.js gvis连接器。js 代码将加载这两个文件: ui de,table de.css 格式de、默认de、ui de、表格de、corechart de.I.js 但是图表没有出现,也没有JS
通过本案例,我们实现blobImage上传的图片在grid表格中的显示。 grid的cellRender方法渲染单元格显示图片,例: Model.prototype.personGridCellRender = function(event){ if(event.colName == "sPhoto"){ var url = biz.Request.setBizPar
通过这个示例我们实现通过attachmentImage上传的图片在grid表格中显示,分成两个步骤: 1.引入DocUtils: DocUtils = require('$UI/system/components/justep/docCommon/docUtil'); 2.通过grid的cellRender方法来显示图片 例: Model.prototype.imageGridCellRender
我有一个巨大的问题显示一个上传的图片在Spring引导,问题是第一次我上传它,路径是完美的,一切都很好,但图像不显示,当我重新启动服务器图像显示。 我认为这是因为当启动项目时,它编译成一个.jar而没有映像,所以在重新启动项目之前,映像并不真实存在。 我不知道如何解决这个问题,不确定是否可能。
我正在使用JavaFX,在那里我编写了一个包含的代码,通过我想在我的场景上显示图像,但它不起作用。图像不显示。 当我使用它还显示一个错误。虽然我70%的编码已经完成,但我只是坚持在现场显示图像(不上传)。 以下是我正在使用的代码: 所以,我需要的是通过单击按钮并选择图像来显示我的场景中的图像。