Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js base64转file

作者:戮尽逆者   发布日期:2025-11-21   浏览:93

// 将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对象

解释说明:

  1. base64ToFile 函数:该函数接受三个参数:

    • base64String: 包含Base64编码的数据字符串。
    • fileName: 文件名。
    • fileType: 文件类型(例如 "image/png")。
  2. 移除数据类型部分:Base64字符串通常以 "data:image/png;base64," 开头,我们只需要实际的Base64编码部分,因此使用 split(',')[1] 来提取它。

  3. 创建 Uint8Array:通过 atob 函数将Base64字符串解码为二进制字符串,然后将其转换为 Uint8Array

  4. 创建 Blob 对象:使用 Blob 构造函数创建一个Blob对象,并指定文件类型。

  5. 创建 File 对象:使用 File 构造函数创建一个File对象,传入Blob对象、文件名和文件类型。

  6. 返回 File 对象:最终返回一个完整的File对象,可以用于上传或其他操作。

上一篇:js 数组shift

下一篇:js file转base64

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组连接

js json数组

js 数组复制

js 复制数组

js 数组拷贝

js 对象数组合并

js 对象转数组

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站