我尝试创建一个Blob对象并将Uint8Array传递给它的构造函数 它适用于Windows上的chrome和firefox 在ios上的chrome和safari中,Blod不包含Uint8Array的数据,但是文本:[object Uint8Array]
我需要将画布上传到服务器。
有解决方法吗?
答案 0 :(得分:11)
我正在努力解决同样的问题。当我使用ArrayBuffer备份Uint8Array时,它在Safari和Chrome中都可以使用(尚未在其他浏览器中测试过),但Chrome会打印一条警告消息。 Chrome说我必须在将DataBuffer传递给Blob()构造函数之前将其封装在DataView中。
// write the bytes of the string to an ArrayBuffer
var ab = new ArrayBuffer(byteString.length);
var ia = new Uint8Array(ab);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
new Blob([ab], {type: mimeString});
修改强>
确切的Chrome弃用邮件是:
Blob构造函数中不推荐使用ArrayBuffer值。使用 而不是ArrayBufferView。