5

我已经从 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 中的某个地方遇到了错误。我无法查看错误,因为它在服务器上运行。

4

1 回答 1

3

这需要与这个答案几乎完全相反!或者至少,它的反面。它回答Imagebase 64 String,而这个用例是Stringto Image

看得到javax.xml.bind.DatatypeConverter.parseBase64Binary(String)一个。byte[]_String

使用byte[]来构造一个ByteArrayInputStream.

于 2013-10-08T05:18:32.290 回答