js的File对象,Blob和file相互转换

一、 Blob转成File

MDN File()

let blob = new Blob(['这里是要转换的字符串或者图片等'], { type: "text/plain;charset=utf-8" });
console.log("Blob对象", blob);
let file = new File([blob], 'test.jpg', { type: blob.type })
console.log("File对象", file);

File()除了可以转换Blob外,还可以是一个包含ArrayBuffer,ArrayBufferView,或者 DOMString 对象的 Array — 或者任何这些对象的组合。

这是 UTF-8 编码的文件内容

二、File转成Blob

MDN FileReader()

MDN Blob()

<div class="upload">
   <input id="input" type="file" onchange="upload(this)">
</div>
function upload(e) {
    let file = e.files[0];
    console.log("File对象", file);
    fileToBlob(file)
}

function fileToBlob(file) {
    let reader = new FileReader();
    reader.addEventListener('load', (e) => {
        let base64 = e.target.result;
        let blob = new Blob([base64], { type: file.type });
        console.log("Blob对象", blob);
    })
    reader.readAsDataURL(file)
}

三、Blob转成text文本字符

let blob = new Blob(['挫折,永不言败。理想,永不止步。目标,永不停歇。命运,永不屈服。'], { type: "text/plain;charset=utf-8" });
console.log("Blob对象", blob);
blobToText(blob)

function blobToText(blob) {
    let reader = new FileReader();
    reader.addEventListener('load', (e) => {
        let text = e.target.result;
        console.log("Text内容:\n", text);
    })
    reader.readAsText(blob)
}

转二进制用FileReader.readAsBinaryString()

posted @   槑孒  阅读(4887)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示