前述のように、File APIは、FileWriterおよびFileSystem API とともに、ブラウザのタブ/ウィンドウのコンテキストからクライアントのマシンにファイルを格納するために使用できます。
ただし、次の2つのAPIに関連するいくつかの注意事項があります。
- 現在、APIの実装はChromiumベースのブラウザー(ChromeおよびOpera)にのみ存在します
- どちらのAPIも2014年4月24日にW3C標準トラックから外され、現在は独自仕様です
- 将来的にはブラウザーの実装から(現在は独自仕様の)APIを削除する可能性があります
- サンドボックス(ファイルは効果を生み出すことができないそのディスク外側の位置)をAPIで作成されたファイルを格納するために使用されます
- 仮想ファイルシステムに使用される(必ずしもそれがブラウザ内からアクセスする場合と同じ形式でディスク上に存在しないディレクトリ構造)APIで作成されたファイルを表します
これを行うために、APIを直接または間接的に組み合わせて使用する簡単な例を次に示します。
焼き菓子 *
bakedGoods.get({
data: ["testFile"],
storageTypes: ["fileSystem"],
options: {fileSystem:{storageType: Window.PERSISTENT}},
complete: function(resultDataObj, byStorageTypeErrorObj){}
});
未加工のFile、FileWriter、およびFileSystem 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);
FileSystem APIとFileWriter APIはもはや標準化の過程にありませんが、私の意見では、これらの使用は正当化できる場合があります。
- 実装されていないブラウザーベンダーからの新たな関心により、ブラウザーベンダーはすぐに再配置されます
- 実装(Chromiumベース)ブラウザーの市場浸透率は高い
- Google(Chromiumへの主な貢献者)は、APIにサポート終了日を示していません
ただし、「一部のケース」があなた自身のケースを包含するかどうかは、あなたが決めることです。
* BakedGoodsは、この男以外の誰もがここで管理しています:)