Javascript: 使用 XMLHttpRequest 发送 arrayBuffer
Javascript: Sending arrayBuffer using XMLHttpRequest
我想使用 XMLHttpRequest 发送多部分表单。我要附加的文件是一个jpg文件。将文件附加到 FormData 对象工作正常。
但我想在发送之前处理图像文件。因此,我有一个将 Uint8Array 作为输入和输出的库。所以我将处理后的图像作为 UInt8Array.
我尝试使用
form.append("picture", new Blob(fileAsArray, {type: "image/jpg"} ));
但它创建了一个 octet/stream。
那么如何通过 XMLHttpRequest multipart/form 发送 Uint8Array 以便服务器看到与发送文件对象时相同的内容?
请注意,Blob
constructor 将类型化数组(或其他来源)的 数组 作为其参数。尝试
form.append("picture", new Blob([fileAsArray], {type: "image/jpg"} ));
可能这不是对问题的直接回答,但我已经创建了一个函数来上传 ArrayBuffer 作为文件,而不是使用 XMLHttpRequest,而是使用 fetch。
所以这是我的版本 Javascript Fetch:
function uploadArrayBufferRawImage(arraybuffer)
{
var formData = new FormData();
formData.append("image",
new Blob([arraybuffer], {type: "image/x-myrawformat-raw"}),
new Date().toJSON() + ".raw");
fetch("scripts/store_image.php", {
method: 'POST',
body: formData
}).then(function(resp)
{
return resp.json();
}).then(function(json)
{
console.log(json);
});
}
我想使用 XMLHttpRequest 发送多部分表单。我要附加的文件是一个jpg文件。将文件附加到 FormData 对象工作正常。
但我想在发送之前处理图像文件。因此,我有一个将 Uint8Array 作为输入和输出的库。所以我将处理后的图像作为 UInt8Array.
我尝试使用
form.append("picture", new Blob(fileAsArray, {type: "image/jpg"} ));
但它创建了一个 octet/stream。 那么如何通过 XMLHttpRequest multipart/form 发送 Uint8Array 以便服务器看到与发送文件对象时相同的内容?
请注意,Blob
constructor 将类型化数组(或其他来源)的 数组 作为其参数。尝试
form.append("picture", new Blob([fileAsArray], {type: "image/jpg"} ));
可能这不是对问题的直接回答,但我已经创建了一个函数来上传 ArrayBuffer 作为文件,而不是使用 XMLHttpRequest,而是使用 fetch。
所以这是我的版本 Javascript Fetch:
function uploadArrayBufferRawImage(arraybuffer)
{
var formData = new FormData();
formData.append("image",
new Blob([arraybuffer], {type: "image/x-myrawformat-raw"}),
new Date().toJSON() + ".raw");
fetch("scripts/store_image.php", {
method: 'POST',
body: formData
}).then(function(resp)
{
return resp.json();
}).then(function(json)
{
console.log(json);
});
}