我有将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上传工作?