gpt4 book ai didi

javascript - Chrome 打包应用程序;将文件条目复制到用户的下载目录

转载 作者:行者123 更新时间:2023-12-03 08:30:50 25 4
gpt4 key购买 nike

因此,在我的应用程序中,有一个由我的应用程序创建的本地存储(fileEntry)。我想添加一项功能来让用户访问该文件。由于应用程序本身无法访问“Downloads”目录,目前我使用以下代码:

let link = document.createElement('a');
link.download = obj.name;
link.href = URL.createObjectURL(file);
link.dispatchEvent(new MouseEvent('click'));

fileEntry.file(function (file){}) 获取文件的位置。代码工作正常,但问题是我的文件很大(500MB),当我创建 createObjectURL 时,Chrome 使用两倍的内存,因为内容被复制到 blob 中。我唯一想要的是将文件从内部存储“移动”到用户的“下载”目录。我知道在扩展中可以使用 chrome.download API,但此 API 在打包应用程序中不可用。

最佳答案

使用chrome.filesystemchrome.storage api 代替。首先,将权限添加到manifest.json:

permissions: [ "storage", { "fileSystem": [ "write", "retainEntries", "directory" ] } ]

然后访问实际文件系统上的文件夹并保存以供以后使用。

chrome.fileSystem.chooseEntry({ type: "openDirectory" }, function(folder) {
chrome.storage.local.set({ folder: chrome.fileSystem.retainEntry(folder) })
})

然后您可以恢复它并像普通目录条目一样使用它。

chrome.storage.local.get("folder", function(storage) {
chrome.fileSystem.restoreEntry(storage.folder, function(folder) {
entry.moveTo(folder)
}) })

关于javascript - Chrome 打包应用程序;将文件条目复制到用户的下载目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33341616/

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