Как упоминалось ранее, API File вместе с API FileWriter и FileSystem могут использоваться для хранения файлов на компьютере клиента из контекставкладка / окно браузера.
Однако есть несколько вещей, относящихся к последним двум API, о которых вы должны знать:
- Реализации API в настоящее время существуют только в браузерах на основе Chromium(Chrome & Opera)
- Оба API были сняты со стандартного трека W3C 24 апреля 2014 года и на данный момент являются собственностью
- Удаление (теперь проприетарных) API изРеализация браузеров в будущем - это возможность
- A песочница (место на диске, вне которого файлы не могут оказать никакого эффекта) используется для хранения файлов, созданных с помощью API
- A виртуальная файловая система (структура каталогов, которая не обязательно существует на диске в той же форме, что и при доступе из браузера)представлять файлы, созданные с помощью API
Вот простые примеры того, как API, прямо и косвенно, используются для этого:
BakedGoods*
bakedGoods.get({
data: ["testFile"],
storageTypes: ["fileSystem"],
options: {fileSystem:{storageType: Window.PERSISTENT}},
complete: function(resultDataObj, byStorageTypeErrorObj){}
});
Использование сырых API File, FileWriter и FileSystem
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);
Хотя API FileSystem и FileWriter больше не используютсяна уровне стандартов их использование может быть оправдано в некоторых случаях, по моему мнению, потому что:
- Возобновление интереса со стороны не реализующих поставщиков браузеров может привести их обратно к этому
- Проникновение на рынок внедряющих (на основе Chromium) браузеров велико
- Google (основной вкладчик в Chromium) не предоставил и дату окончания срока действия API-интерфейсов
«некоторые случаи» охватывают ваше собственное, однако, вам решать.
* BakedGoods поддерживается не кем иным, как этим парнем прямо здесь:)