我在 JavaScript 中有一个方法可以将二进制文件读取到 ArrayBuffer 并将其发送到 Jersey POST 方法:
function readAndSendBytes() {
var file = document.getElementById("entityFileField").files[0],
reader = new FileReader();
var entityBytes = reader.readAsArrayBuffer(file);
reader.onloadend = function () {
alert(reader.result);
}
var xhr = new XMLHttpRequest();
var url = "/api/upload/e2j";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-type", "application/octet-stream");
xhr.responseType = "json";
xhr.onload = function (e) {
var response = xhr.response;
alert(response);
}
xhr.send(reader.result);
}
球衣:
@Path("/upload")
public class ParserHandler {
@POST
@Path("/e2j")
@Consumes(MediaType.APPLICATION_OCTET_STREAM)
@Produces(MediaType.APPLICATION_JSON)
public String entityToJsonTwoElectricBoogaloo(byte[] entityPayload) {
System.out.println(entityPayload.length);
}
每当我将长度打印到控制台时,长度总是 0,而应该是 439。我做错了什么?
开心每一天1111
翻翻过去那场雪
相关分类