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

Jay*_*ydo 6 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 "";
}
Run Code Online (Sandbox Code Playgroud)

如何获取图像的数据 URI?

Jay*_*ydo 4

经过多次搜索,我在这里找到了答案。

StringBuilder sb = new StringBuilder();
sb.append("data:image/png;base64,");
sb.append(StringUtils.newStringUtf8(Base64.encodeBase64(imageByteArray, false)));
return sb.toString();
Run Code Online (Sandbox Code Playgroud)

诀窍是StringUtils.newStringUtf8(...).
我尝试的其他方法返回了 10 个字符长的字符串或格式不正确的数据 URI。