小编典典

如何将Image中的Data URI用作InputStream?

java

我已经从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内的某处出现了错误。我无法查看错误,因为它正在服务器上运行。


阅读 214

收藏
2020-11-01

共1个答案

小编典典

这几乎需要与此答案完全相反的答案!或者至少是相反的。它回答Image到基座64
String,而此用例是StringImage

期待javax.xml.bind.DatatypeConverter.parseBase64Binary(String)得到byte[]String

使用byte[]构建一个ByteArrayInputStream

2020-11-01