【发布时间】:2021-02-05 01:25:21
【问题描述】:
晚安,社区。我尤其是 Java 和 Vaadin 的新手。请向我解释为什么 addSucceededListener() 比我下载文件更早(加载页面时)触发?
您可以在 Vaadin 论坛here 上查看讨论。
只是一个鱼文本,会省略编辑出版 -_-
Lorem ipsum dolor sit amet,consectetur adipiscing elit。 Nulla非finibus massa。 Maecenas ut metus 坐在 amet odio luctus facilisis。 Mauris vulputate enim nec nibh mollis,在 tincidunt orci posuere。 Curabitur vitae tincidunt velit, congue sagittis turpis。 Duis sollicitudin in metus non pulvinar。 Pellentesque quis justo sit amet dui tristique vestibulum commodo et risus。 Suspendisse a commodo lectus, a hendrerit massa。 Donec sagittis commodo purus,ut mollis risus ultricies id。 Curabitur lacinia mi vitae luctus tristique。 Faucibus orci luctus et ultrices posuere cubilia curae 中的前庭前庭; Proin 在 varius justo。 Vestibulum posuere tristique metus, ac commodo elit consectetur id。
@Route("")
public class UploadView extends VerticalLayout {
@Autowired
PictureRepository pictureRepository;
@Autowired
GoogleCloudAiAssistantRecognition googleCloudAiAssistantRecognition;
public UploadView() {
this.pictureRepository = pictureRepository;
this.googleCloudAiAssistantRecognition = googleCloudAiAssistantRecognition;
MenuBar menuBar = new MenuBar();
menuBar.addThemeVariants(MenuBarVariant.LUMO_PRIMARY);
MenuItem resultsItem = menuBar.addItem("Get Results");
MenuItem tagItem = menuBar.addItem("Edit Tag");
resultsItem.addClickListener(e -> UI.getCurrent().navigate("ai-result"));
tagItem.addClickListener(e -> UI.getCurrent().navigate("edit-tag"));
add(menuBar, new H1("Assistant recognition by Google Vision"));
MemoryBuffer buffer = new MemoryBuffer();
Upload upload = new Upload(buffer);
upload.setAcceptedFileTypes("image/jpeg", "image/png", "image/gif");
upload.setMaxFileSize(10485760);
Div output = new Div();
upload.addSucceededListener(event -> {
InputStream inputStream = buffer.getInputStream();
byte[] bytes = new byte[0];
try {
bytes = IOUtils.toByteArray(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
add(new H1(event.getMIMEType()));
Component component = createComponent(event.getMIMEType(), event.getFileName(), inputStream);
showOutput(event.getFileName(), component, output);
PictureModel pictureModel = new PictureModel(event.getFileName(), event.getMIMEType(), bytes);
Long picId = pictureRepository.save(pictureModel).getId();
List<TagModel> tags = null;
try {
tags = googleCloudAiAssistantRecognition.detect(picId);
} catch (Exception e) {
e.printStackTrace();
}
pictureModel.setTagModel(tags);
});
/*upload.getElement().addEventListener("upload-success", e -> {
System.out.println(e.getEventData());
});*/
add(upload, output);
}
【问题讨论】:
标签: java user-interface vaadin