📅  最后修改于: 2023-12-03 15:23:04.903000             🧑  作者: Mango
有时候我们会将图像转化为base64编码,这可以方便图片的传输和处理。但是,在某些情况下,我们需要将图像的base64编码转换为实际的文件。本文将介绍如何使用JavaScript实现这一过程。
toBlob
方法toBlob
方法是一个将图像转换为blob
对象的浏览器API。blob
对象表示二进制数据的不可变的原始数据。我们可以通过将blob
对象转换为文件来实现将图像的base64编码转换为文件。
function convertBase64ToFile(imageBase64, fileName) {
// 将base64编码的图片转换为Blob对象
let byteString = atob(imageBase64.split(',')[1]);
let mimeString = imageBase64.split(',')[0].split(':')[1].split(';')[0];
let ab = new ArrayBuffer(byteString.length);
let ia = new Uint8Array(ab);
for (let i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
let blob = new Blob([ab], { type: mimeString });
// 将Blob对象转换为文件
let file = new File([blob], fileName, { type: mimeString });
return file;
}
// 将base64编码的图片转换为文件
let imageBase64 = "data:image/png;base64,iVBORw0KG...";
let fileName = "image.png";
let file = convertBase64ToFile(imageBase64, fileName);
// 处理上传图片的业务逻辑
// ...
dataURLtoFile
函数如果您不想使用浏览器API,还有一个非常有用的第三方库data-uri-to-buffer
可以实现将图像的base64编码转换为文件。这里提供一个使用data-uri-to-buffer
库实现的代码示例。
data-uri-to-buffer
库npm install data-uri-to-buffer
import dataUriToBuffer from 'data-uri-to-buffer';
function dataURLtoFile(dataurl, filename) {
// 将base64编码的图片转化为文件
let buffer = dataUriToBuffer(dataurl);
let file = new File([buffer], filename, { type: 'image/png' });
return file;
}
// 将base64编码的图片转化为文件
let imageBase64 = "data:image/png;base64,iVBORw0KG...";
let fileName = "image.png";
let file = dataURLtoFile(imageBase64, fileName);
// 处理上传图片的业务逻辑
// ...
以上两种方法都可以很方便地将图像的base64编码转换为文件。如有疑问,欢迎在评论区留言。