是否可以从 vaadin 中的 OutputStream 对象创建一个 ExternalResource 对象?我想要的是允许用户裁剪通过上传组件上传的图像,但不将其保存在服务器端。只有当他确认裁剪区域时,我才会保存它。
问题是 Upload 的 receiveUpload 方法返回 OutputStream ,我不知道如何从中获取 ExternalResource 对象以将其传递给 CropField(addon) 构造函数。
回答我自己的问题:可以创建一个非常适合 CropField 构造函数的 StreamResource 实例。
StreamSource streamSource = new StreamResource.StreamSource() {
@Override
public InputStream getStream() {
return new ByteArrayInputStream(bos.toByteArray());
}
};
final StreamResource streamRes = new StreamResource(streamSource, UUID.randomUUID().toString(), getApplication());