如何将MultiPartFile(图像)转换为数据URI?

时间:2015-06-17 04:05:33

标签: java multipart data-uri

在我的网站上我上传了一张图片,需要返回该图片的数据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?

1 个答案:

答案 0 :(得分:1)

经过多次搜索,我找到了答案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。