手机客户端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});
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 他打开微课 认真听着 当所谓的老师讲到她的 半年收入已达100万 正向200万努力时 他心潮澎湃 好像老师的钱在自...
    开心点金石阅读 1,148评论 29 39
  • 九里情缘阅读 353评论 0 0
  • 今天和同事陈桑一起和咖啡的时候,听他聊起上周他回国参加的一个报告会.是五角场那边一个项目孵化第一期项目汇报,听他讲...
    卡纳西阅读 462评论 0 2