的这个问题的答案取决于你的回答以下问题:
你罚款,对这种能力支持的事实目前只存在于基于铬的浏览器(Chrome的&歌剧)?
您是否利用现在的专有API来利用这种优势?
你可以在将来删除该API的可能性吗?
在磁盘上用这个API创建的文件缩小到沙箱(文件不能产生任何效果的位置),你还好吗?
如果你回答“是”以上所有的,那么,与FileWriter和FileSystem API,您可以使用JavaScript在浏览器标签/窗口的上下文写入文件。
这里的API是如何串联使用做一个简单的例子:
function onQuotaRequestSuccess(grantedQuota)
{
function saveFile(directoryEntry)
{
function createFileWriter(fileEntry)
{
function write(fileWriter)
{
var dataBlob = new Blob(["Hello world!"], {type: "text/plain"});
fileWriter.write(dataBlob);
}
fileEntry.createWriter(write);
}
directoryEntry.getFile(
"testFile",
{create: true, exclusive: true},
createFileWriter
);
}
requestFileSystem(Window.PERSISTENT, grantedQuota, saveFile);
}
var desiredQuota = 1024 * 1024 * 1024;
var quotaManagementObj = navigator.webkitPersistentStorage;
quotaManagementObj.requestQuota(desiredQuota, onQuotaRequestSuccess);
随着BakedGoods *,即建立一个统一的接口,可用于开展公共存储操作的Javascript库所有本地(包括文件系统),以及一些非本地的仓储设施,上面用此来完成:
bakedGoods.set({
data: [{key: "testFile", value: "Hello world!", type: "text/plain"}],
storageTypes: ["fileSystem"],
options: {fileSystem:{storageType: Window.PERSISTENT}},
complete: function(byStorageTypeStoredItemRangeDataObj, byStorageTypeErrorObj){}
});
文件系统规范定义的目录结构是如何出现在磁盘上没有任何指引。例如,在基于Chromium的浏览器中,沙盒具有一个虚拟文件系统(目录结构不一定以与从浏览器内访问时相同的形式存在于磁盘上),其中创建的目录和文件与API放置。
因此,尽管您可以使用API将文件写入系统,但是在没有API的情况下(没有FileSystem API)定位文件可能是一件不平凡的事情。
* BakedGoods是不是别人这家伙就在这里:)