Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字节[]转换为图像并显示在jsp上_Java_Hibernate_Jsp_Spring Mvc_Image Uploading - Fatal编程技术网

Java 将字节[]转换为图像并显示在jsp上

Java 将字节[]转换为图像并显示在jsp上,java,hibernate,jsp,spring-mvc,image-uploading,Java,Hibernate,Jsp,Spring Mvc,Image Uploading,我试图在jsp页面上显示上传的图片(现在是一个字节数组)。现在,数据库中存在byte[]列,必须将其转换为图像 这就是我一直在尝试的: jsp页面上的部分表格: <c:forEach var="user" items="${userList}"> <tr> <td>${user.fileName}</td> <td> <img src="data:image/jpg;

我试图在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>

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

您可以将tranisent
base64imageFile
属性添加到您的
用户
。它将保存图像的base64编码字符串,您可以像jsp一样访问该字符串

<img alt="img" src="data:image/jpeg;base64,${user.base64imageFile}"/>

IOUtils
Base64
是来自
org.apache.commons
的一个方便的util类,查找时应该不会有问题

我认为您需要将字节数组转换为Base64字符串。请参阅@cricket_007我仍然不知道如何在我的jsp中使用这个Base64字符串。让
user.imageFile
成为字符串而不是字节数组。谢谢。成功了。我使用基本的java.util.Base64类方法进行Base64编码。
Base64.getEncoder().encode(字节)
我还必须补充一点,如果显示的图像大于允许的URI大小,浏览器可能无法显示图像。
<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);
        }
    }