2013-04-17 3 views
6

폰갭 resolveLocalFileSystemURI는 다음과 같습니다 :나는이 파일 시스템 URI를 해결하기 위해 노력하고

/var/mobile/Applications/9483756B-8D2A-42C5-8CF7-8D76AAA8FF2C/Shift.app/iqedata/5977e2e9239649d5a7e3b8a54719679f/06e2b8896e51472789fcc27575631f94.jpg 

는 몸은 어떻게 폰갭에서이 URI를 해결하고 아래에 표시하는 방법을 사용하여 FileEntry을 얻는 방법을 말해 줄래?

window.resolveLocalFileSystemURI(Url, resOnSuccess, resOnError); 

uri 앞에 "file : //"또는 "//"을 추가하려고했지만 작동하지 않습니다.

감사합니다.

답변

13

PhoneGap에서는 [APP 해시]/Documents 또는 [APP 해시]/tmp 폴더 외부의 파일을 읽을 수 없습니다. 이러한 폴더 중 하나에있는 데이터로 앱을 초기화하는 방법을 찾지 못하면 데이터를 다른 방법으로 가져와야합니다. 아래 코드가 작동하는 것을 발견했습니다. 기본적으로 임시 폴더에 로컬 파일을 다운로드하고 파일 항목을 제공합니다.

window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, function(fs){ 
    fs.root.getFile("temp", {create: true, exclusive: false}, 
     function(entry){ 
     fileTransfer.download(
       Url, // the filesystem uri you mentioned 
       entry.fullPath, 
       function(entry) { 
        // do what you want with the entry here 
        console.log("download complete: " + entry.fullPath); 
       }, 
       function(error) { 
        console.log("error source " + error.source); 
        console.log("error target " + error.target); 
        console.log("error code " + error.code); 
       }, 
       false, 
       null 
     ); 
    }, function(){ 
     alert("file create error"); 
    }); 
}, null); 
+0

정말 고마워요. 이런 것들이 나를 미치게했고 솔루션이 완벽하게 작동합니다. 또 다른 속임수는 uri가 file : /// var/blablabla로 시작해야한다는 것입니다. – esdotzed

+0

다행입니다! 나는 보통 location.href로 시작하는 경로를 구축하는데, 이미 file : ///가있다. 그렇게하면 전체 경로를 하드 코딩 할 필요가 없습니다. –

+0

좋아요! 알려 줘서 고마워. – esdotzed

관련 문제