// 将Base64字符串转换为File对象的示例代码
function base64ToFile(base64String, fileName, fileType) {
// 移除Base64字符串中的数据类型部分(如"data:image/png;base64,")
const base64Data = base64String.split(',')[1];
// 创建一个包含Base64数据的Uint8Array
const byteCharacters = atob(base64Data);
const byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
// 使用Blob创建文件对象
const blob = new Blob([byteArray], { type: fileType });
// 使用File构造函数创建File对象
const file = new File([blob], fileName, { type: fileType });
return file;
}
// 示例用法:
const base64String = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...";
const fileName = "example.png";
const fileType = "image/png";
const file = base64ToFile(base64String, fileName, fileType);
console.log(file); // 输出File对象
base64ToFile 函数:该函数接受三个参数:
base64String: 包含Base64编码的数据字符串。fileName: 文件名。fileType: 文件类型(例如 "image/png")。移除数据类型部分:Base64字符串通常以 "data:image/png;base64," 开头,我们只需要实际的Base64编码部分,因此使用 split(',')[1] 来提取它。
创建 Uint8Array:通过 atob 函数将Base64字符串解码为二进制字符串,然后将其转换为 Uint8Array。
创建 Blob 对象:使用 Blob 构造函数创建一个Blob对象,并指定文件类型。
创建 File 对象:使用 File 构造函数创建一个File对象,传入Blob对象、文件名和文件类型。
返回 File 对象:最终返回一个完整的File对象,可以用于上传或其他操作。
上一篇:js 数组shift
下一篇:js file转base64
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站