我从html5画布中检索了base64数据uri。在我的servlet中,我想解码数据uri并将其用作输入流,如下面的“xxx”所示。以下编码是我将html5画布中的图像发布到我的Facebook帐户中。我正在使用restfb。
FacebookType publishPhotoResponse = facebookClient.publish("me/photos", FacebookType.class,
BinaryAttachment.with("test.jpeg", getClass().getResourceAsStream("xxx")),
Parameter.with("message", "Test"));
我怎样才能实现这一目标?感谢。
已更新越来越近但仍无效!
在我的jsp中:
var d = document.getElementById('img').src;
window.location.href = "upload?src=" + d;
在我的servlet中:
String d = req.getParameter("src");
String head = "data:image/jpeg;base64,";
String base64 = d.substring(head.length()-1);
byte[] buf = DatatypeConverter.parseBase64Binary(base64);
ByteArrayInputStream is = new ByteArrayInputStream(buf);
FacebookType publishPhotoResponse = facebookClient.publish("me/photos", FacebookType.class,
BinaryAttachment.with("test.jpeg", is),
Parameter.with("message", "Test"));
我的编码中是否有任何错误,因为它似乎在servlet中的某处出现错误。我无法查看服务器上运行的错误。
答案 0 :(得分:3)
这几乎与this answer完全相反!或者至少,相反。它回复Image
以64 String
为基础,而此用例为String
到Image
。
请javax.xml.bind.DatatypeConverter.parseBase64Binary(String)
获取byte[]
的{{1}}。
使用String
构建ByteArrayInputStream
。