앞에서 언급 한 것처럼 FileWriter 및 FileSystem API 와 함께 File API를 사용하여 브라우저 탭 / 창의 컨텍스트에서 클라이언트 시스템에 파일을 저장할 수 있습니다.
그러나 두 가지 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){}
});
원시 파일, 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 및 FileWriter API는 더 이상 표준 트랙에 없지만, 다음과 같은 이유로 일부 경우에 사용이 정당화 될 수 있습니다.
- 구현되지 않은 브라우저 공급 업체의 새로운 관심으로 다시 브라우저를 배치 할 수 있습니다.
- (크롬 기반) 브라우저 구현의 시장 침투력이 높음
- Google (Chromium의 주요 기여자)이 API에 대해 수명을 다하지 않았습니다.
그러나 "일부 사례"가 자신의 사례를 포함하는지 여부는 귀하가 결정하는 것입니다.
* BakedGoods는이 사람 이외의 다른 사람에 의해 유지됩니다 :)