js---将base64的数据转换为文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js---将base64的数据转换为文件相关的知识,希望对你有一定的参考价值。

参考技术A /**

* 将base64的数据转换成一个Blob对象

* @param Object b64Data base64数据

* @param Object contentType 数据类型

* @param Object sliceSize 分片大小

*/

function b64toBlob(b64Data, contentType, sliceSize)

    let b = b64Data.toString();

    b64Data = b.split(',')[1];

    var byteCharacters =atob(b64Data);

    var byteArrays = [];

    for (let offset =0; offset < byteCharacters.length; offset += sliceSize)

        var slice = byteCharacters.slice(offset, offset + sliceSize);

        var byteNumbers =new Array(slice.length);

        for (let i =0; i < slice.length; i++)

            byteNumbers[i] = slice.charCodeAt(i);

       

        var byteArray =new Uint8Array(byteNumbers);

        byteArrays.push(byteArray);

   

    var blob =new Blob(byteArrays, type: contentType);

    return blob;



/**

* 将Blob对象转换为file对象

* @param Object theBlob blob对象

* @param Object fileName 文件名称

*/

function blobToFile(theBlob,fileName)

    theBlob.lastModifiedDate =new Date();

    theBlob.name = fileName;

    return theBlob;



// 创建一个reader

let reader =new FileReader();

// 将图片转成 base64 格式

reader.readAsDataURL(file);

/**

* 将base64转换为文件

* @param dataurl base64格式数据

* @param filename 文件名

* @param filetype 文件类型

* @returns File 二进制流文件

*/

function dataURLtoFile(dataurl,filename,filetype)

    var arr = dataurl.split(","),

    bstr =atob(arr[1]),

    n = bstr.length,

    u8arr =new Uint8Array(n);

    while (n--)

        u8arr[n] = bstr.charCodeAt(n);

   

    return new File([u8arr], filename,

        type: filetype

    );

以上是关于js---将base64的数据转换为文件的主要内容,如果未能解决你的问题,请参考以下文章

JS 将 blob url 转换为 Base64 文件

js使用canvas将文字转换成图像数据base64

Javascript如何将Base 64 url​​转换为文件?

将 base64 图像字符串转换为可以使用 node.js 提供给浏览器的图像文件

js 将图片转换为base64编码

使用 typescript 使用 data-uri 将图像转换为 base64