2015-06-17 33 views
2

在我的网站上,我上传了一张图片,需要返回该图片的数据URI,但我无法弄清楚如何这样做(它必须是服务器端)。如何将MultiPartFile(图片)转换为数据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?

+0

你是什么意思?就像发回刚刚上传的数据链接一样? –

+0

我在图像的字符串表示之后。 [示例](https://css-tricks.com/data-uris/) – Jaydo

回答

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。