我尝试创建一个Blob对象,并将一个Uint8Array传递给它的构造函数。它在chrome和firefox上运行良好,在windows上运行良好,在chrome上运行良好,在ios上运行良好,但是Blod不包含Uint8Array的数据,而是包含文本: object Uint8Array
我需要这个上传一个画布到服务器。
有解决办法吗?
发布于 2013-01-18 07:23:32
我正在为同样的问题而苦苦挣扎。当我用ArrayBuffer备份Uint8Array时,它在Safari和Chrome上都可以工作(还没有在其他浏览器上测试过),但是Chrome会打印一条警告消息。Chrome说在将ArrayBuffer传递给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弃用的确切消息是:
ArrayBuffer值在Blob构造函数中已弃用。改为使用ArrayBufferView。
https://stackoverflow.com/questions/14340989
复制相似问题