本地保存文件

时间:2014-05-23 19:21:14

标签: javascript html html5 google-chrome

我正在尝试创建一个页面,其中包含指向在线pdf的链接。 单击这些链接时,它将在本地保存文件,并将名称/路径添加到本地存储。 然后我遍历本地存储密钥,显示每个保存文件的链接。

我在本地保存文件时遇到问题。我尝试使用chrome filesystem api:

function saveFile() {
        chrome.fileSystem.chooseEntry({
            type: "saveFile",
            suggestedName: "file.txt"
        },
        function (savedFile) {
            localStorage[s] = saveFile.fullPath;

        });
    }

但是我得到了Uncaught TypeError:无法读取属性' chooseEntry'未定义的。

基本上,我需要将文件保存到系统,然后获取该路径。如果没有提示选择名称/位置,则更可取。

2 个答案:

答案 0 :(得分:0)

如果该应用是Chrome扩展程序,那么我认为很可能尚未启用fileSystem API。对于Chrome应用,您需要通过该应用的manifest.json file启用它,您也可以要求user permission

如果是用于Web应用程序,那么您可以使用window.webkitRequestFileSystem请求文件系统,尽管这只能在Chrome中使用(可能仍然是Opera)。

对于跨浏览器文件存储和下载支持,您可以使用Dexie之类的浏览器IndexedDB存储空间以及FileSaverBlob库,尽管您不会拥有相同的内容存储容量和灵活性比使用本机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