将byte 转换为图像并在jsp上显示
我正在尝试在jsp页面上显示上传的图片(现在是一个字节数组)。 现在,byte []列存在于数据库中,必须转换为图像。
这就是我一直在尝试的:
jsp页面上的部分表格:
${user.fileName}
从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中访问它
在你的方法中你应该进行编码,有些像
@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
和Base64
是org.apache.commons
一个方便的util类,应该没有问题
- 如何在Oracle下处理大型事务?
- 无法在一对多关系hibernate注释中插入null
- 如何在Spring Data中按示例查询在两个日期之间添加限制范围
- 与Bean Validation API结合使用时,Hibernate不遵循JPA规范吗?
- 正则表达式疯狂:java.util.regex.Pattern matcher进入高CPU循环
- JPA 2.0 / Hibernate:为什么LAZY使用“@OneToOne”开箱即用?
- org.hibernate.LazyInitializationException:无法初始化代理 – 没有会话?
- Hibernate使用条件执行更新
- 没有persistence.xml的JPA
Interesting Posts
仅将日期的日期部分与hibernate中的时间戳进行比较
Hibernate:永远不会调用MyInterceptor#onFlushDirty
使用JPA Criteria Api和hibernate spatial 4
ORM:Non Primary-Key Join列上的OneToOne映射 – 按ISBN映射的Book和Inventory
Hibernate 5.2.2:没有EntityManager的持久性提供程序
Spring Data JPA – “无法初始化代理 – 无会话” – 使用标记为事务的方法
AuditException:由于非活动事务而无法创建修订
读/写分裂hibernate
无法阻止Hibernate将日志写入控制台(log4j.properties没问题)
如何在EntityListeners中注入EntityManager