Я хочу получить загруженное изображение как массив байтов (чтобы его можно было вставить в базу данных sql). Я также хочу показать загруженное изображение в виде предварительного просмотра.Как загрузить изображение с помощью ByteArrayOutputStream в Ваадине?
Я пробовал следующий код, но im не получал байты полного изображения. (Если я распечатать массив байтов печатает только несколько символов)
final Embedded preview = new Embedded("Uploaded Image");
preview.setVisible(false);
final Upload upload = new Upload();
upload.setCaption("Image");
// Create upload stream
final ByteArrayOutputStream baos = new ByteArrayOutputStream(); // Stream to write to
upload.setReceiver(new Upload.Receiver() {
@Override
public OutputStream receiveUpload(String filename, String mimeType) {
return baos; // Return the output stream to write to
}
});
upload.addSucceededListener(new Upload.SucceededListener() {
@Override
public void uploadSucceeded(Upload.SucceededEvent succeededEvent) {
final byte[] bytes = baos.toByteArray();
preview.setVisible(true);
preview.setSource(new StreamResource(new StreamResource.StreamSource() {
@Override
public InputStream getStream() {
return new ByteArrayInputStream(bytes);
}
}, ""));
}
});
Получить байт в методе GetStream() и посмотреть, поможет ли это. – KDM
u означает переменную байтов? он содержит только несколько символов, если я печатаю его – tharinduwijewardane
да. Переменная 'bytes'. – KDM