您需要获取jpg并转换为arrayBuffer,有人知道如何执行此操作吗?我尝试使用下面的函数进行操作,但未成功使用Microsoft API
document.querySelector('#inputImage').addEventListener('change', function() {
var reader = new FileReader();
reader.onload = function() {
var arrayBuffer = this.result,
array = new Uint8Array(arrayBuffer);
};
答案 0 :(得分:0)
您可以使用此功能将base64映像转换为数组缓冲区
export async function base64ToFile(dataURL, fileName) {
const arr = dataURL.split(',');
const mime = arr[0].match(/:(.*?);/)[1];
return (fetch(dataURL)
.then(function (result) {
return result.arrayBuffer();
}));
}
答案 1 :(得分:0)
在我看来this
是您代码中的其他内容。使用bind()
:
reader.onload = function() { .... }.bind(this);
或使用粗箭头语法:
reader.onload = () => { .... };
因为this.result
如果result
是输入的属性/属性,那么我会说这并不涉及输入元素。
答案 2 :(得分:0)
document.querySelector('#inputImage').addEventListener('change', function() {
var reader = new FileReader();
reader.onload = function() {
var arrayBuffer = new Uint8Array(reader.result);
console.log(arrayBuffer);
};
reader.readAsArrayBuffer(this.files[0]);
});
<input type="file" id="inputImage">