手机客户端H5,ajax文件上传,iOS手机系统版本不同导致上传异常,安卓可能很少出现问题

  • 会出问题的方法如下:
dataurl:base64文件数据源 
filename:文件名
function dataURLtoFile(dataurl, filename) {//将base64转换为文件
 var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
    bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
    while(n--){
        u8arr[n] = bstr.charCodeAt(n);
    }
    return new File([u8arr], filename, {type:mime});
}
  • 换成下面方法可解决文件上传失败问题:
dataURI:base64文件数据源
function convertBase64UrlToFileOrBlob(dataURI) {
    var arr = dataURI.split(','),mime = arr[0].match(/:(.*?);/)[1],
              bstr = atob(arr[1]),fileExt = mime.split('/')[1],n = bstr.length,u8arr = new Uint8Array(n);//$window.atob
    while (n--) {
        u8arr[n]= bstr.charCodeAt(n);
     }
    return new Blob([u8arr], {type: mime});
}

你可能感兴趣的:(手机客户端H5,ajax文件上传,iOS手机系统版本不同导致上传异常,安卓可能很少出现问题)