如何将 MultiPartFile(图像)转换为数据 URI?
How to convert a MultiPartFile (image) to a data URI?
在我的网站上,我正在上传一张图片,需要 return 该图片的数据 URI,但我不知道该怎么做(必须是服务器端)。
我试过下面的代码,但它似乎对文件名进行了编码。
@RequestMapping(value="/path/toDataURL", method=RequestMethod.POST, headers = "content-type=multipart/form-data")
public @ResponseBody String uploadMultipart(HttpServletRequest request, HttpServletResponse response, @RequestParam("file") MultipartFile multiPart) {
try {
return "data:image/png;base64," + Base64.encodeBase64(multiPart.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
如何获取图片的数据URI?
经过多次搜索,我找到了答案 here。
StringBuilder sb = new StringBuilder();
sb.append("data:image/png;base64,");
sb.append(StringUtils.newStringUtf8(Base64.encodeBase64(imageByteArray, false)));
return sb.toString();
诀窍是StringUtils.newStringUtf8(...)
。
我尝试的其他方法返回了 10 个字符长的字符串或格式不正确的数据 URI。
在我的网站上,我正在上传一张图片,需要 return 该图片的数据 URI,但我不知道该怎么做(必须是服务器端)。
我试过下面的代码,但它似乎对文件名进行了编码。
@RequestMapping(value="/path/toDataURL", method=RequestMethod.POST, headers = "content-type=multipart/form-data")
public @ResponseBody String uploadMultipart(HttpServletRequest request, HttpServletResponse response, @RequestParam("file") MultipartFile multiPart) {
try {
return "data:image/png;base64," + Base64.encodeBase64(multiPart.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
return "";
}
如何获取图片的数据URI?
经过多次搜索,我找到了答案 here。
StringBuilder sb = new StringBuilder();
sb.append("data:image/png;base64,");
sb.append(StringUtils.newStringUtf8(Base64.encodeBase64(imageByteArray, false)));
return sb.toString();
诀窍是StringUtils.newStringUtf8(...)
。
我尝试的其他方法返回了 10 个字符长的字符串或格式不正确的数据 URI。