0

我已经尝试通读我可以找到的所有文档,但仍然对这实际上是什么以及如何接收它感到困惑。

我正在尝试在 javascript 中重新创建连接 api(最初用 java 编写)。Java 将图像作为 byteArrayEntity 发送:

HttpPost postRequest = new HttpPost(requestUrl);
log("Request url: " + requestUrl);

HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, 30000);
postRequest.setParams(params);

HttpEntity entity = new ByteArrayEntity(photo);
postRequest.setEntity(entity);

Header header = new BasicHeader("Content-Type", "image/jpeg");
postRequest.addHeader(header);
header = new BasicHeader("Accept", "application/json");
postRequest.addHeader(header);

我怎样才能在 javascript 中做同样的事情,以便在无需对其执行任何进一步操作的情况下识别它?

显然我不能在 javascript 中做完全相同的事情,我可以将它作为字节数组的字符串发送,即。“[42,34,24,...]”,但假设他们必须在另一边期待这一点,因此知道将其转换回数组?

提前致谢。

4

2 回答 2

0

已解决:谢谢,最终发现将其识别为图像的唯一方法是将其作为数组缓冲区中的 Uint8Array 发送。目前,接收软件与之前的图像不匹配,所以我不确定他们是否期望以其他方式进行此操作,但 httprequest 被识别为有效图像。

var abufimg = new ArrayBuffer(array.length);
var vu8img = new Uint8Array(abufimg);
for(var y=0; y<array.length; y++){
    vu8img[y] = array[y];
}               

xhr.send(abufimg);
于 2013-07-16T01:14:56.070 回答
0

字节数组可能是 base 64 编码的。您可以在服务器上这样添加前缀,浏览器会将其视为图像数据。

data:image/jpeg;base64,BBBBBB...

其中 BBBBBB... 是您的字节数组

于 2013-07-03T23:32:07.560 回答