HTML Canvas toDataURL上传无法在iOS移动设备上运行

时间:2017-09-06 13:06:23

标签: ios file canvas mobile-safari

我有将base64数据上传到服务器的问题。我首先将base64数据转换为blob并使用File API创建一个新文件,然后将其上传到服务器。问题是,此解决方案适用于桌面和移动设备上的chrome,但不适用于iOS Mobile Safari(最新版本)。我的流程如下所示。

canvas.toDataURL('image / jpeg') - > base64 - > blob - >文件

function dataURItoBlob(dataURI) {
    var byteString = atob(dataURI.split(',')[1]);
    var ab = new ArrayBuffer(byteString.length);
    var ia = new Uint8Array(ab);
    for (var i = 0; i < byteString.length; i++) {
        ia[i] = byteString.charCodeAt(i);
    }
    return new Blob([ab], { type: 'image/jpeg' });
}

var base64 = canvas.toDataURL('image/jpeg', 0.8)
var file = new File([dataURItoBlob(base64)], "filename")
/* Standard ajax uploading goes here */

上传后,我在iOS上只获得了一个小的白色空白方块,但它在移动设备和桌面设备上都能正常运行。

所以我的问题是,为什么不在iOS上传工作?

0 个答案:

没有答案