将图像 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
我有一个从包含图像的 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