收藏
回答

通过wx.getLocalImgData获取的base64如何转换为File对象

小程序嵌套的h5页面,使用JsSdk接口上传图片:

在ios下,通过wx.getLocalImgData获取图片的base64数据,想把base64转成File对象上传到本地的ftp服务器上,发现上传后的文件大小为0kb.

不知道是不是转换后的file对象有问题?

wx.getLocalImgData({

localId: res.localIds[i], // 图片的localID

    success: function (res) {

    let localData = res.localData // localData是图片的base64数据,可以用img标签显示

    //iOS 系统里面得到的数据,类型为 image/jgp,因此需要替换一下

    localData = localData.replace('jgp', 'jpeg')

    let newFile=_this.dataURLtoFile(localData,i+'.jpg')

    newFile.src = localData

   _this.transformSingleFile(_this.doctor.id,newFile,'2')

}

})

dataURLtoFile(dataurl,filename){

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}); 

}


回答关注问题邀请回答
收藏

3 个回答

  • 智者
    智者
    2019-07-12

    你好。请问你的sdk还可以用getLocalImgData吗

    2019-07-12
    赞同
    回复
  • 王彩霞
    王彩霞
    2018-11-21

    2018-11-21
    赞同
    回复
  • fancy
    fancy
    2018-11-21

    你好,请问解决了吗

    2018-11-21
    赞同
    回复
登录 后发表内容