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

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

这就是我一直在尝试的:

jsp页面上的部分表格:

  ${user.fileName}  No image  

从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); } } 

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

您可以向User添加tranisent base64imageFile属性。 它将保存图像的base64编码字符串,您可以在jsp中访问它

 img 

在你的方法中你应该进行编码,有些像

 @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); } } 

IOUtilsBase64org.apache.commons一个方便的util类,应该没有问题