uniapp微信小程序下载base64图片流或https图片

小程序 0

 常规https的图片下载是这样的

const urlPath = 'https://test/logo.png'uni.downloadFile({	url: urlPath,	success(res){		// 这时会产生一个临时路径,在应用本次启动期间可以正常使用。		if (res.statusCode == 200) {			// 需要将图片保存到相册			uni.saveImageToPhotosAlbum({				filePath: res.tempFilePath, // 图片文件路径,可以是临时文件路径也可以是永久文件路径,不支持网络图片路径				success(res){					uni.showToast({						title: '保存成功',						icon: 'none'					})					// 如果保存成功需要打开查看,请使用以下方法,同时也支持打开文件					uni.openDocument({						filePath: res.savedFilePath,						success(res){},						fail(err){							uni.showToast({		                        title: '手机不支持该文件类型,请安装wps或office应用',		                        icon: 'none'		                    })						}					})				},				fail(err){				uni.showToast({				  title: '图片保存失败',				  icon: 'none'				})				}			})		} else {			uni.showToast({			  title: '下载失败,请稍后再试',			  icon: 'none'			})		}	},	fail(err) {		 uni.showToast({		    title: '下载失败,请稍后再试',		    icon: 'none'		 })     }})

下面来说一下后端返回base64的文件流,是如何下载的

必须把返回的流去掉这一部分:data:image/png;base64,否则下载不了

如我自己的流:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACgCAIAAABhQAIFAAACaklEQVR42u3aUXLCMAwEUO5/6fYKMNLKcvL2k4E08UsHsfHnTy7PxxIgFISCEKEgFISCEKEgFISCEKEgFISCEKEgFISCEKG8h/ATyK9/q3KeXZ+dXAeECBEiRLiXsPQ9/MXSVD5bec+GdUCIECFChPcR/vp1XRlnKsfvGjcm1wEhQoQIEb6LsOv1xHsQIkSIECHCk+NM18/nyVsQIUKECBG+i3Cy5u76qb7t9kKIECFChPcRTi7f5tftYEOIECHCdxFOJnHZlUfNG5cIIUKECBHOEybGljRV5ZiTIxhChAgRIryb8FQFnN4ulRidECJEiBDhcwi7Rp7KElSOmR5DBioChAgRIkS4tOY+tTWoi3Pyce7SR74IESJEiLCx5k4fp6vmXlhhI0SIECHCpYSJyjtx2ZO3xanHAAgRIkSIcNfzwlMVdtfWpq5KYXJkQ4gQIUKEZwgT40NiS1J6+1P6sTNChAgRItxLOLkEiUfHm6t5hAgRIkR4H2Hip3e6Ou+qudNjF0KECBEivIMwTV45/mRln6g7ECJEiBDh3YTpCji9rF1J/EsgRIgQIcK7CRtPvb2G7qrjh6twhAgRIkR4gDCdyhKn+RO3OEKECBEivI8w/ZU+uSWpcg6JLcIIESJEiPA+wsTYkq4LTtXWIVqECBEiRLiIcLJW3jCSdI1pCBEiRIgQYXUk6arLE9XBxFMBhAgRIkT4bMKucWOSuVJNIESIECHCuwnTt0LiHCavMXQtCBEiRIjwMOEtdfDkcexgQ4gQIcLnE8qqIEQoCAUhQkEoCAUhQkEoCAUhQkEoCAUhQkEoCAUhQrk0/1j3Eulg4ZAoAAAAAElFTkSuQmCC
downImg(){        var byte=this.codeImg.replace("data:image/png;base64,","");        const fs = uni.getFileSystemManager(); //全局唯一的文件管理器        var number = Math.random();        fs.writeFile({          filePath: wx.env.USER_DATA_PATH + '/code' + number + '.png',          data: byte,          encoding: "base64",          success(res) {            uni.saveImageToPhotosAlbum({ //保存为png格式到相册              filePath: wx.env.USER_DATA_PATH + '/code' + number + '.png',              success: function (res) {                uni.showToast({ title: "下载成功", icon: "success" });              },              fail: function (err) {                console.log(err)              }            })          }        })      },

也许您对下面的内容还感兴趣: