android blob,javascript – Blob和Blobbuilder或Blobbuilder在Android原生浏览器上的问题有什么区别...

问题不是从

What’s the difference between BlobBuilder and the new Blob constructor?重复

我正在做网络应用程序.要上传图像我使用Blob,以防万一BlobBuilder. Blob运行良好,但Blob不适用于Android原生浏览器,Android原生浏览器使用BlobBuilder.我预计,Blob和BlobBuilder返回相同的blob,但他们没有.这是我的代码:

base64toBlob: function(b64Data,contentType,sliceSize) {

var BlobBuilder,blob,byteArray,byteCharacters,byteNumbers,charCodeFromCharacter,err,posIndex;

if (contentType == null) {

contentType = '';

}

if (sliceSize == null) {

sliceSize = 1024;

}

posIndex = b64Data.indexOf('base64,');

if (posIndex !== -1) {

b64Data = b64Data.substring(posIndex + 7);

}

charCodeFromCharacter = function(c) {

return c.charCodeAt(0);

};

byteCharacters = atob(b64Data.replace(/\s/g,''));

byteNumbers = Array.prototype.map.call(byteCharacters,charCodeFromCharacter);

byteArray = new Uint8Array(byteNumbers);

try {

blob = new Blob([byteArray.buffer],{

type: contentType

});

return blob;

} catch (_error) {

err = _error;

BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;

blob = new BlobBuilder();

blob.append(byteArray.buffer);

return blob.getBlob(contentType);

}

}

我发送请求时做了日志

blobImg = base64toBlob(base64Data,imageType);

alert(JSON.stringify(blobImg));

// alert shows {"type": "image/jpeg","size": 10251 } when blob worked

// alert shows {"type": "image/jpeg","size": 27822 } when blobbuilder worked

ajaxRequest.send(blobImg);

我尝试在所有浏览器上以相同的图像上传.在Chrome和其他浏览器上,我从log {“type”:“image / jpeg”,“size”:10251}获取并请求发送成功,但在Android原生浏览器上我得到{“type”:“image / jpeg”,“大小“:27822}并且请求失败,状态码为0.在android浏览器上工作catch部分(我猜,这意味着Android本机浏览器不支持Blob)我在android 4.1.2中测试过.我从谷歌没有发现任何问题.我很高兴如果有人帮助我!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值