2013-04-17 36 views
6

我試圖解決這個文件系統URI如下所示:的PhoneGap resolveLocalFileSystemURI

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

任何機構可以告訴我如何解決這個URI中的PhoneGap和使用下面顯示的方法得到FileEntry的?

window.resolveLocalFileSystemURI(Url, resOnSuccess, resOnError); 

我嘗試添加「文件://」 URI中之前或「//」,但它不工作。

謝謝。

回答

13

PhoneGap不允許您讀取[APP HASH]/Documents或[APP HASH]/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應以文件開始:/// VAR/blablabla – esdotzed

+0

高興它的工作!我通常從location.href開始建立我的路徑,它已經有了file:///。這樣我就不必硬編碼整個路徑。 –

+0

太棒了!謝謝你讓我知道。 – esdotzed