Display uploaded image in JSF

前端 未结 3 844
半阙折子戏
半阙折子戏 2020-12-30 10:13

I have a view scoped bean where I create a person. A person can have a picture. This picture is uploaded the same page the person is created. The picture is not stored in a

3条回答
  •  一个人的身影
    2020-12-30 10:56

    I managed to do that by simply encoding uploaded image to base64 and then showing it normally via html tag.

    Here's my managed bean:

    @ManagedBean
    @ViewScoped
    public class ImageMB {
    
    private String base64Image;
    
    public void onUploadImage(FileUploadEvent event) {
        String fileName = event.getFile().getFileName();
        //Get file extension.
        String extension = "png";
        int i = fileName.lastIndexOf('.');
        if (i > 0) {
            extension = fileName.substring(i + 1).toLowerCase();
        }
    
        String encodedImage = java.util.Base64.getEncoder().encodeToString(event.getFile().getContents());
        this.base64Image = String.format("data:image/%s;base64, %s", 
             extension, encodedImage));
    }
    

    And here's JSF part:

    
    
    

提交回复
热议问题