4

Chrome Packaged AppHTML5 FileSystem API을 사용하여 로그 파일에 기록하고 있습니다. 나는 사용자가이 파일을 다운로드 할 수 있도록하려면, 그래서의 라인을 따라 뭔가 노력이 그래도 도움이되지 않습니다Chrome 패키지 애플리케이션의 fileEntry.toURL() 대체

fs.root.getFile('log.txt', {create: false}, function(fileEntry) { 
    var url = fileEntry.toURL(); 
    // do something with the file url 
}); 

를 URL이 filesystem:chrome-extension://eekedjcagggbfigdmifkmhkjbhiklnpj/temporary/log.txt 같은이기 때문에 어딘가에을 열 수 없습니다 .

패키지 응용 프로그램에서 FileSystem API 파일을 다운로드 할 때 어떤 기술을 권장 하시겠습니까?

편집 : Ben Well의 answer을 읽은 후, 내가 원하는 것을 더 명확히해야한다는 것을 깨달았습니다. HTML5 파일 시스템 API 파일 내용을로드하고, 그로부터 블롭을 만들고, 사용자 선택 경로에 chrome.fileSystem API을 쓰는 것을 의미하지 않는 기술이 있다면 그것은 나에게 특히 좋을 것 같습니다.

+0

패키지 된 앱의 의도가 웹 앱과 다르다는 것을 알고 계십니까? 그 점을 염두에두고 당신이 원하는 것은 "이 사이트는 당신에게 뭔가를 보내려고합니다. 당신은 그것을 갖고 싶습니까?", 웹 서버 "물건"과 통신하는 웹 앱은 무엇입니까? 네이티브 앱의 생각을 받아들이는 가장 일반적인 메커니즘은 파일을 어딘가에 저장하거나 화면에 콘텐츠를 렌더링하거나 클립 보드에 복사하는 것입니다. 우리가 당신을 도울 수있게 도와 주시겠습니까? 그리고 그것을 성취하기 위해 무엇을 포기할 수 있습니까? 감사합니다. –

+0

저는 웹 앱을 만드는 것과는 반대로 패키지 앱으로 왜 이것을하고 싶은지 잘 알고 있습니다. HTML5 파일 시스템 API를 통해 정보를 저장하는 API 용어로 가장 편리한 방법을 찾고 있습니다 (사용자가 처음부터이 인터페이스를 사용하지 않아도 됨). 사용자를 위해 저장 가능 파일의 blob 객체를 작성합니다. – bfncs

답변

4

chrome.fileSystem.chooseEntry을 사용해 보셨습니까? 이 API를 사용하면 프로그램이 사용자의 하드 디스크에 파일을 저장하여 프로그램에서 다른 이름으로 저장 명령을 사용할 수 있습니다. 이것은 다운로드 링크와 조금 다르지만 V2 앱이 네이티브 앱과 조화를 이루고 있습니다.

chrome.fileSystem은 파일 위치를 선택하라는 대화 상자를 표시합니다. 파일 저장 옵션을 사용하면 사용자가 선택한 위치에 쓸 수있는 권한이있는 파일 항목이 반환됩니다. 사용자는 이러한 옵션을 사용할 때 새 파일을 만들 수도 있습니다.

+1

답장을 보내 주셔서 감사합니다. chrome.fileSystem을 알고 있지만 sandboxed HTML5 FileSytem API (사용자가 볼 수 없음)로 파일을 유지하면서이 경로로 내보낼 수있는 기능을 제공하고 싶습니다. 제안하는 경로는 HTML5 저장소에서 파일 내용을 가져 와서 새로운 Blob을 만들고 chrome.fileSytem.chooseEntry를 사용하여 사용자가 지정한 경로에 저장하는 것을 의미합니다. 이 작업은 분명히 효과적이지만 필자는 파일 내용을로드 할 필요가없는보다 간단한 기술이 필요했습니다. 나는 이미 상향 투표를하고 있지만 다른 답변도 기다릴 것이다. – bfncs

+0

"내가하고 싶은 일은 영구 영역에있을 수있는 샌드 박스 HTML5 FileSytem API ("사용자가 볼 수 없음 ")로 파일을 유지하는 것입니다. "그러나 이것을 선택의 길로 내보낼 수있는 가능성을 제시합니다"이것은 벤 웰스가 제안한 것과 정확히 일치합니까? –

+0

비슷한 문제가있어서이 솔루션을 사용하게되었습니다. 대용량 파일은 다소 느리지 만 제대로 작동합니다. 보안 문제라고 생각합니다. 사용자가 직접 정확한 경로를 선택하지 않고 파일을 다운로드하면 수동으로 너무 많은 공격을받을 수 있습니다. – kzahel