将Base64图片转换为file传输给后端

38 阅读1分钟
// 1,先将base64转换为blob
const dataURLtoBlob = (dataurl: any) => {
	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 Blob([u8arr], { type: mime })
}
// 2,再将blob转换为file
const blobToFile = (theBlob: any, fileName: any) => {
	theBlob.lastModifiedDate = new Date() // 文件最后的修改日期
	theBlob.name = fileName // 文件名
	return new File([theBlob], fileName, { type: theBlob.type, lastModified: Date.now() })
}

// 3
const url = 'data:image/png;base64,' + res.data
const file: any = blobToFile(dataURLtoBlob(url), 'fileName')