HTTP/REST API File Uploads
4 stars based on
The responseType property of the XMLHttpRequest object can be set to change the expected response type from the server. Possible values are the empty string default"arraybuffer""blob""document""json"and "text". This is null if the request is not complete or was not successful.
This example reads an image as a binary file and creates an 8-bit unsigned integer array from the raw bytes. Note that this will not decode the image and read the pixels. You will need a png decoding library for that. An alternative to the above method utilizes the Blob interface to directly construct a Blob with the arraybuffer data. Also you can read a binary file as a Blob by setting the string "blob" to the responseType property. The magic happens in line 5, which overrides the MIME type, forcing the browser to treat it as plain text, using a user-defined character set.
This tells the browser not to parse it, and to let the bytes pass through unprocessed. The example above fetches the byte at offset x within the loaded binary data. The valid range for x is from 0 to filestream.
See also downloading files. The following example sends creates a text file on-the-fly and uses the POST method to send the "file" to the server. This example uses plain text, but you can imagine the data being a binary file instead.
This is building a byte array of 8-bit integers and sending it; you can use any binary data you'd like, of course. Please, read this paragraph. Line 4 sets the Content-Length header toindicating that the data is bytes long. Rest service post binary data you need to change this value based on the actual size of the data being sent. You can also send binary content by passing an instance of the nsIFileInputStream to send. In that case, you don't have to set the Content-Length header yourself, as the information is fetched from the stream automatically:.