从服务器获取文件并将其转换为javascript中的字节数组?

时间:2015-07-29 09:38:39

标签: javascript jquery binaryfiles

在javascript中我想从服务器下载(获取)二进制文件并使用其字节。 我使用这段代码:

$.get('/file.mp4', function(data) {
    var bytes = new Uint8Array(data.length);
    for (var i=0; i<data.length; i++) {
            bytes[i] = data.charCodeAt(i);
        }
    });

但是有一个问题: data 变量的某些字符的ASCII码大于255(如“ą” - &gt; ASCII:261)!!和charCodeAt(i)当我使用console.log(data[i])输出为“ ”时,它们也返回65533。

我测试了"ą".charCodeAt(0),输出是261,所以我猜这个问题出现在数据 get 方法,而不是 charCodeAt 方法。有下载二进制文件的替代方法吗?

1 个答案:

答案 0 :(得分:1)

获取这样的数据:

var xhr = new XMLHttpRequest();
xhr.open('GET', '/my/image/name.png', true);
xhr.responseType = 'blob';

xhr.onload = function(e) {
  if (this.status == 200) {
    // get binary data as a response
    var blob = this.response;
  }
};

xhr.send();