Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.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 Can';t在SpringMVC应用程序中用jsp显示blob图像_Java_Spring_Hibernate_Jsp_Spring Mvc - Fatal编程技术网

Java Can';t在SpringMVC应用程序中用jsp显示blob图像

Java Can';t在SpringMVC应用程序中用jsp显示blob图像,java,spring,hibernate,jsp,spring-mvc,Java,Spring,Hibernate,Jsp,Spring Mvc,我通过java中的Hibernate以byte[]和数据库中的blob的形式将图像保存并加载到MySQL 5.5数据库。然而,当我无法在jsp中显示它时 我的控制器: @RequestMapping(value = "/productPicture/{productPictureId}/edit", method = RequestMethod.GET) public String productPictureEditGET(@PathVariable("productPictureId") i

我通过java中的
Hibernate
byte[]
和数据库中的
blob
的形式将图像保存并加载到
MySQL 5.5
数据库。然而,当我无法在
jsp
中显示它时

我的控制器:

@RequestMapping(value = "/productPicture/{productPictureId}/edit", method = RequestMethod.GET)
public String productPictureEditGET(@PathVariable("productPictureId") int productPictureId, HttpServletRequest request, Model model) {

    ProductPictureFormBO productPicture = productPictureService.getById(productPictureId, ProductPictureFormBO.class, ProductPictureEntity.class);

    byte[] encoded=org.apache.commons.codec.binary.Base64
            .encodeBase64(productPicture.getPicture());
    String encodedString = new String(encoded);

    model.addAttribute("image",encodedString);
    model.addAttribute("productPicture", productPicture);

    return "productPicture/editView";
}
然后在jsp中,两个元素都不显示任何内容…:

  <img src="data:image/jpeg;base64,${image}" alt="..." width="200" height="200">`
  <img src="data:image/jpeg;base64,${productPicture.picture}" width="200" height="200">`
`
`
在jsp中生成结果:

<img src="data:image/jpeg;base64,MTA4ODg4MTdfMTAyMDM1NjkyNTEzMzQ1MThfNzg0MzE4ODI3Mjc5Mjk0NTQ3MF9uLmpwZw=="  width="200" height="200">
<img src="data:image/jpeg;base64,[B@1666a2e3" width="200" height="200">


知道我遗漏了什么以及如何修复吗?

数据URI方案必须表示图像的内容,而不是表示文件名的字符串

这里,


这是
10888817_10203569251334518_784318827279245470_n.jpg
的base64编码值,它根本不表示图像内容,但清楚地表示图像的文件名。显然,
ProductPicture#getPicture()
返回的唯一文件名是
byte[]
,而不是图像的内容


因此,要么您保存图像的方式错误,只保存了图像的文件名而不是数据库中的图像内容,要么您使用了错误的模型值(尽管我想知道将文件名保存为
byte[]
而不是直接保存为
String
).

结果HTML中实际生成的是什么?您可能应该告诉我们
图像中的内容(假设它不太大)。或者共享显示生成的DOM的屏幕截图。我已经更新了我的帖子…你需要将它们显示为数据URL而不是常规图像吗?哦!你完全正确!问题不在这个显示视图中,而是在保存事件中,我只保存上传图像的名称,而不是图像本身!:)谢谢你帮我弄清楚发生了什么:)是的,我只保存了文件本身的文件名isntead
<img src="data:image/jpeg;base64,MTA4ODg4MTdfMTAyMDM1NjkyNTEzMzQ1MThfNzg0MzE4ODI3Mjc5Mjk0NTQ3MF9uLmpwZw=="  width="200" height="200">