通过wx.getLocalImgData获取的base64如何转换为File对象
发布于 5 年前 作者 weigao 14190 次浏览 来自 问答

小程序嵌套的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 回复

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

你好,请问解决了吗

回到顶部