无法在'FileReader'上执行'readAsArrayBuffer':参数1不是'Blob'类型

时间:2016-12-01 13:48:06

标签: javascript angularjs xmlhttprequest blob filereader

我遇到了一个javascript Filereader的问题,它返回错误Uncaught TypeError:无法在'FileReader'上执行'readAsDataURL':参数1不是'Blob'类型。

这是javascript:

                    var blob = null;
                    var xhr = new XMLHttpRequest(); 
                    xhr.open("GET", "C:\\Users\\yw1kew\\Desktop\\LG_FRAME.plmx"); 
                    xhr.responseType = "blob";//force the HTTP response, response-type header to be blob
                    xhr.onload = function() 
                    {
                        blob = xhr.response;//xhr.response is now a blob object
                    }
                    xhr.send();
                    var myReader = new FileReader();
                    myReader.readAsArrayBuffer(blob) // THE CODE FAILS HERE

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:0)

在我的情况下,我使用SharePoint作为平台,我需要像这样转换二进制代码:

    binaryDecode = function (data) {
    var ret = '';
    if (data) {
        var byteArray = new Uint8Array(data);
        for (var i = 0; i < data.byteLength; i++) {
            ret = ret + String.fromCharCode(byteArray[i]);
        }
    }
    return ret;
};

然后像这样使用它:

console.log(binaryDecode(arrayBuffer));

答案 1 :(得分:0)

我只是遇到了同样的问题,在网上搜索了几个小时的解决方案后,我意识到我也许可以使用fetch,它确实可以工作!

fetch("./file.bin")
  .then((data) => {
    return data.arrayBuffer();
  })
  .then((array) => {
    console.log(buffer);
  })
  .catch((error) => {
    console.log(error);
  });
相关问题