3

크롬에서 파일 시스템 API를 사용하여 파일을 만들려고했습니다. 처음에는 PERSISTENT 스토리지를 다음과 같이 시도했습니다.Google 크롬에서 HTML5 파일 API를 사용하려고 할 때 FileError 받기

window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; 
webkitStorageInfo.requestQuota(webkitStorageInfo.PERSISTENT, 1024*1024, 
    function(grantedBytes) { 
     window.requestFileSystem(webkitStorageInfo.PERSISTENT, grantedBytes, onInitFs, 
     errorHandler); 
    }, 
    errorHandler); 

처음에는 제대로 작동했습니다. 나는 동일한 코드 나에게 다음과 같은 오류를주고있다 할 때 보안 오류를 의미하는 코드 2 좀 FileError을주고 그

window.requestFileSystem(TEMPORARY, 1024*1024, onInitFs, errorHandler); 

을 다음과 같이하지만 지금

NOT_SUPPORTED_ERR: DOM Exception 9 

은 그 때 나는 임시 파일 저장을 시도 . 누구든지이 문제에 대해 저를 도울 수 있습니까?

+0

두 번째 오류는 실제로 DOMFileSystem 객체에서 불법적 인 일을 수행하는'onInitFs' 콜백에서 발생합니까? – apsillers

+0

프로그램 컨트롤이 onInitFs에 도달하지 않습니다. 할당량을 요청하기 전에'webkitStorageInfo.queryUsageAndQuota' 함수를 사용해 보았습니다. 0 바이트를 사용 가능한 바이트로 반환합니다. 그것은 내가 추측하는 문제이다. 할당량을 얻을 수있는 방법이 있습니까? 왜 나를 위해 0입니까? –

+0

'unlimitedStorage'를 권한에 추가하여 도움이되는지 확인하십시오. 그렇지 않다면, 나는 무엇이 잘못되었는지 정말로 확신하지 못합니다. – apsillers

답변

0

오류를 재현 할 수 없습니다. 나는 콘텐츠 스크립트에서 파일 시스템 API를 사용하는 간단한 확장을 만들었고 나에게 잘 작동한다. 콘솔에 오류가 있습니까? 그렇지 않은 경우이 코드를 빌드하고 더 이상 오류가 있는지 확인하십시오.

의 manifest.json :

{ 
    "name": "Testing FS", 
    "manifest_version":2, 
    "version": "1.0", 
    "content_scripts": [ 
    { 
     "matches":["*://*.google.com/*"], 
     "js":["script.js"] 
    } 
    ] 
} 

script.js :

webkitStorageInfo.requestQuota(webkitStorageInfo.TEMPORARY, 1024*1024, function(grantedBytes) { 
    console.log("bytes granted: ", grantedBytes); 
    window.webkitRequestFileSystem(webkitStorageInfo.TEMPORARY, grantedBytes, onInitFs, errorHandler) 
}, errorHandler); 

function errorHandler(e) { 
    console.log("FS error", e); 
} 

function onInitFs(fs) { 
    fs.root.getFile('log.txt', {create: true}, function(fileEntry) { 
     console.log(fileEntry); 
    }, errorHandler); 
} 
2

당신은 로컬 컴퓨터에 저장되어있는 페이지에 코드를 삽입하고 실행하려고 크롬으로? 플래그 바로 가기에

--allow-file-access-from-files 

을 추가 했습니까? 나는 당신과 같은 오류가 발생하여 갑자기이 플래그를 추가하여 크롬을 실행하는 것을 잊었다는 것을 깨달았습니다.