function base64ToFile(base64Data, filename) {
// 将base64的数据部分提取出来
const parts = base64Data.split(';base64,');
const contentType = parts[0].split(':')[1];
const raw = window.atob(parts[1]);
// 将原始数据转换为Uint8Array
const rawLength = raw.length;
const uInt8Array = new Uint8Array(rawLength);
for (let i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}
// 使用Blob和提取出的数据内容创建一个新的Blob对象
const blob = new Blob([uInt8Array], {type: contentType});
// 创建一个指向Blob对象的URL,并使用这个URL创建一个File对象
const blobUrl = URL.createObjectURL(blob);
const file = new File([blob], filename, {type: contentType});
// 返回File对象
return file;
}
// 使用示例
const base64Data = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA...'; // 这里应该是完整的Base64编码字符串
const filename = 'image.png'; // 文件名
const file = base64ToFile(base64Data, filename);
console.log(file);
图片Base64转换为文件流file
最新推荐文章于 2024-03-30 17:45:00 发布