gpt4 book ai didi

javascript - 在javascript中将Blob转换为文件列表

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:05:35 24 4
gpt4 key购买 nike

我正在使用以下代码将 Canvas 图像转换为 blob。
为了将 blob 转换为文件/文件列表对象,我需要将该文件列表传递给文件处理程序。

我的代码:

var canvas1 = document.getElementById("preview");
var theImage = document.getElementById("blahProfile");
theImage.src = canvas1.toDataURL();
var blob = dataURItoBlob(theImage.src);

有什么方法可以将该 blob 转换为文件对象吗?

最佳答案

File 对象包含比 Blob 对象更多的信息,具有 lastModifiedDatefileName 等属性。您的图像数据具有这些属性中的任何一个都没有意义,因为它不是文件。

我假设您的 FileList 处理程序使用 FileReader 来读取 File 对象。但是,FileReader 方法也可以处理 Blob 对象(因为 FileBlob 的子类)。因此,您可以:

  • 将您的 FileReader 代码提取到一个单独的函数中,该函数接受一个 BlobFile(可能还有一个解析回调函数)amd在处理每个 FileList 项和处理图像数据的 Blob

  • 时调用该函数
  • 如果您的 FileList 处理程序仅按索引访问列表项(例如,myFileList[i]),那么您可以伪造一个 FileList 只需使用 Blob 数组即可。例如,此函数适用于真正的 FileListBlob 数组:

    function processFileList(list) {
    var reader = new FileReader();
    reader.readAsText(list[0]);
    reader.addEventListener("loadend", function() {
    console.log(reader.result);
    });
    }

关于javascript - 在javascript中将Blob转换为文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23926971/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com