将图像 blob 对象保存到本地文件系统 Javascript

Save image blob-object to local filesystem Javascript

我有一个从包含图像的 canvas 中获得的 blob 对象。我将此 blob 更改为 objectURL。

let myBlob = canvas.toBlob(function(blob) {...}, 'image/jpeg', 0.95);
let myUrl = URL.createObjectURL(myBlob);

我得到一个 blob 对象 url 如:blob:file:///d324f-3fd4....

为了获取文件的保存位置,我尝试在调用DirectoryEntry 对象的getDirectory 方法之前首先请求文件系统。但是,我得到了一般的 File not found in the directory 错误。

window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
webkitRequestFileSystem(window.TEMPORARY, 2048*2048, resolve, errorHandler);
// doesn't resolve to any value

我在 Windows 10 的 AppData 文件夹中到处搜索,但没有找到临时文件。我的猜测是这个 blob 只存在于浏览器内存中,并没有实际保存在 electron 的临时根文件夹中。

URL.createObjectURL 不会将您的文件保存在磁盘上,它只会创建一个符号链接。

如果 Blob 存储在内存中(如您的情况),则符号链接指向内存,并在创建符号链接的会话处于活动状态时将文件保存在内存中。

如果是文件(从用户输入中获取),符号链接直接指向用户的磁盘。

所以在你的情况下你不能访问它的位置,因为它只存在于内存中。

现在,您始终可以将 Blob 存储在文件系统上,但我不是 Electron 忍者,所以我会让您检查其他人的答案:Save video blob to filesystem electron/node js