将 byte[] 转换为图像并显示在 jsp
Convert byte[] to image and display on jsp
我正在尝试在 jsp 页面上显示上传的图片(现在是字节数组)。现在,数据库中存在 byte[] 列,必须将其转换为图像。
这是我一直在尝试的:
jsp 页上 table 的部分内容:
<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);
}
}
如果需要任何其他信息,请告诉我。谢谢
您可以在 User
中添加一个短暂的 base64imageFile
属性。它将保存图像的 base64 编码字符串,您可以在 jsp 中访问它,比如
<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
和 Base64
是来自 org.apache.commons
的一个方便的实用程序 类,找到
应该没有问题
我正在尝试在 jsp 页面上显示上传的图片(现在是字节数组)。现在,数据库中存在 byte[] 列,必须将其转换为图像。
这是我一直在尝试的:
jsp 页上 table 的部分内容:
<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);
}
}
如果需要任何其他信息,请告诉我。谢谢
您可以在 User
中添加一个短暂的 base64imageFile
属性。它将保存图像的 base64 编码字符串,您可以在 jsp 中访问它,比如
<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
和 Base64
是来自 org.apache.commons
的一个方便的实用程序 类,找到