将byte []转换为图像并在jsp上显示

问题描述 投票:4回答:1

我正在尝试在jsp页面上显示上传的图片(现在是一个字节数组)。现在,byte []列存在于数据库中,必须转换为图像。

这就是我一直在尝试的:

jsp页面上的部分表:

<c:forEach var="user" items="${userList}">
    <tr>
        <td>${user.fileName}</td>
        <td>
            <img src="data:image/jpg;base64,${user.imageFile}" alt="No image">
        </td>

控制器的一部分,它从MultipartFile对象获取一个字节数组:

@RequestMapping(value = "/register", method = RequestMethod.POST)
    public ModelAndView userRegister(@ModelAttribute("user") @Valid User user, BindingResult result, ModelMap model, @RequestParam("fileData") MultipartFile fileData) throws Exception {

            if (!fileData.isEmpty() && fileData != null) {                

                byte[] bytes = fileData.getBytes();
                user.setFileName(fileData.getOriginalFilename());
                user.setImageFile(bytes);
            }
        }

如果需要任何其他信息,请告诉我。谢谢。

java hibernate jsp spring-mvc image-uploading
1个回答
15
投票

你可以为你的qazxsw poi添加一个瞬态qazxsw poi属性。它将保存图像的base64编码字符串,您可以在jsp中访问它

base64imageFile

在您的方法中,您应该进行编码,例如

User

<img alt="img" src="data:image/jpeg;base64,${user.base64imageFile}"/> @RequestMapping(value = "/register", method = RequestMethod.POST) public ModelAndView userRegister(@ModelAttribute("user") @Valid User user, BindingResult result, ModelMap model, @RequestParam("fileData") MultipartFile fileData) throws Exception { if (!fileData.isEmpty() && fileData != null) { byte[] bytes = fileData.getBytes(); user.setFileName(fileData.getOriginalFilename()); user.setImageFile(bytes); byte[] encodeBase64 = Base64.encodeBase64(bytes); String base64Encoded = new String(encodeBase64, "UTF-8"); user.setBase64image(base64encoded); } } IOUtils的一个方便的工具类,应该没有问题发现

© www.soinside.com 2019 - 2024. All rights reserved.