我正在尝试创建一个页面,其中包含指向在线pdf的链接。 单击这些链接时,它将在本地保存文件,并将名称/路径添加到本地存储。 然后我遍历本地存储密钥,显示每个保存文件的链接。
我在本地保存文件时遇到问题。我尝试使用chrome filesystem api:
function saveFile() {
chrome.fileSystem.chooseEntry({
type: "saveFile",
suggestedName: "file.txt"
},
function (savedFile) {
localStorage[s] = saveFile.fullPath;
});
}
但是我得到了Uncaught TypeError:无法读取属性' chooseEntry'未定义的。
基本上,我需要将文件保存到系统,然后获取该路径。如果没有提示选择名称/位置,则更可取。
答案 0 :(得分:0)
如果该应用是Chrome扩展程序,那么我认为很可能尚未启用fileSystem API。对于Chrome应用,您需要通过该应用的manifest.json file启用它,您也可以要求user permission。
如果是用于Web应用程序,那么您可以使用window.webkitRequestFileSystem请求文件系统,尽管这只能在Chrome中使用(可能仍然是Opera)。
对于跨浏览器文件存储和下载支持,您可以使用Dexie之类的浏览器IndexedDB存储空间以及FileSaver和Blob库,尽管您不会拥有相同的内容存储容量和灵活性比使用本机chrome API。以下是FileSaver&斑点:
var blob = new Blob([data.text], {
type: "text/csv;charset=utf-8"
});
saveAs(blob, data.label + ".csv");
答案 1 :(得分:0)
这是Google Chrome应用程序吗?
如果是这样,您必须在清单文件中包含以下条目:
"permissions" : [
{
"fileSystem" : ["write", "directory"]
}
]
(请注意拼写。我遇到了错误,因为我写了permission
而不是permissions
)