Как загрузить двоичные данные в JSF? [Дубликат]

Для нормальной строки вы можете использовать:

int number = Integer.parseInt("1234");

Для String builder и String buffer вы можете использовать:

Integer.parseInt(myBuilderOrBuffer.toString());
2
задан BalusC 2 October 2013 в 15:17
поделиться

1 ответ

Тип BLOB базы данных SQL находится в Java, представленном как byte[]. Это также в JPA, которое должно быть аннотировано как @Lob. Итак, ваша модель в основном должна выглядеть так:

@Entity
public class SomeEntity {

    @Lob
    private byte[] image;

    // ...
}

Что касается работы с Part, вам, таким образом, в основном нужно прочитать ее InputStream в byte[]. Apache Commons IO IOUtils полезен здесь:

InputStream input = uploadedFile.getInputStream();
byte[] image = IOUtils.toByteArray(input); // Apache commons IO.
someEntity.setImage(image);
// ...

Или, если вы предпочитаете стандартный Java API, который является лишь немного более подробным:

InputStream input = uploadedFile.getInputStream();
ByteArrayOutputStream output = new ByteArrayOutputStream();
byte[] buffer = new byte[10240];
for (int length = 0; (length = input.read(buffer)) > 0;) output.write(buffer, 0, length);
someEntity.setImage(output.toByteArray());
// ...
8
ответ дан BalusC 26 August 2018 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: