base64编码图片转为文件格式

在开发中遇到了拍摄图片并具有截图功能然后上传图片的需求,使用到了cropperjs 裁剪图片,但是裁剪出的图片都是base64的编码,但是要求发送文件格式的图片,记录一下解决方法。

const base64toFile = (dataUrl) => {
	// dataUrl bas64编码
	let arr = dataUrl.split(',')
	let mime = arr[0].match(/:(.*?);/)[1]
	let suffix = mime.split('/')[1]
	let bstr = atob(arr[1])
	let n = bstr.length
	let u8arr = new Uint8Array(n)
	let filename = Math.random()
	while (n--) {
		u8arr[n] = bstr.charcodeAt(n)
	}
	return new File([u8arr], `${filename}.${suffix}`, {
		type: mime,
	})
}

你可能感兴趣的:(javascript)