What Is Bytearrayentity and Equivalent in Javascript
I Have Tried Reading Through All of the Documentation I Can Find on This and Am Still Confused About What This Actually Is and How It Will Be Received. I Am...
I have tried reading through all of the documentation I can find on this and am still confused about what this actually is and how it will be received.
I am trying to recreate a connection api (originally written in java) in javascript. the Java is sending an image as a 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);
How can I do the same thing in javascript so that it will be recognised without having to perform any further operations on it?
Obviously I cannot do exactly the same thing in javascript, I can send it as a string of the bytearray, ie. "[42,34,24,...]" but assumably they would have to be expecting that on the other side and so know to convert this back into an array?
Thanks in advance.
2 Answers
Probably the byte array is base 64 encoded. You can prefix it like this on your server and the browser will see it as image data.
data:image/jpeg;base64,BBBBBB...
Where BBBBBB... is your byte array
Resolved: Thanks, eventually found that the only way this was recognised as an image was to send it as a Uint8Array within an arraybuffer. At the moment the receiving software is not matching this with a previous image so I'm unsure if they are expecting this in some other fashion, but the httprequest is recognised as a valid image.
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);