2013-04-17 13 views
6

मैं इस फाइल सिस्टम uri को हल करने की कोशिश कर रहा हूँ नीचे दिखाया गया है:PhoneGap resolveLocalFileSystemURI

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

शरीर के किसी भी मुझे बताओ कि PhoneGap में इस uri को हल करने और नीचे दिखा विधि का उपयोग कर FileEntry प्राप्त करने के लिए कर सकते हैं?

window.resolveLocalFileSystemURI(Url, resOnSuccess, resOnError); 

मैंने यूरी से पहले "फ़ाइल: //" या "//" जोड़ने की कोशिश की है लेकिन यह काम नहीं करता है।

धन्यवाद।

उत्तर

13

फ़ोनगैप आपको [एपीपी हैश]/दस्तावेज़ या [एपीपी हैश]/टीएमपी फ़ोल्डरों के बाहर फ़ाइलों को पढ़ने नहीं देगा। जब तक आप इन फ़ोल्डरों में से किसी एक में अपने डेटा के साथ अपने ऐप को प्रारंभ करने का कोई तरीका नहीं ढूंढ लेते, तो आपको अपना डेटा अन्य तरीके से प्राप्त करना होगा। मुझे नीचे कोड को काम करने के लिए मिला है। असल में यह स्थानीय फ़ाइल को आपके अस्थायी फ़ोल्डर में डाउनलोड करता है और आपको फ़ाइल प्रविष्टि देता है।

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

आपको बहुत बहुत धन्यवाद। इस सामान ने मुझे पागल कर दिया है और आपका समाधान पूरी तरह से काम करता है। और एक और चाल है कि यूरी फ़ाइल से शुरू होनी चाहिए: /// var/blablabla – esdotzed

+0

खुशी है कि यह काम करता है! मैं आमतौर पर location.href से शुरू होने वाले अपने पथ बना देता हूं, जिसमें पहले से ही फ़ाइल है: ///। इस तरह मुझे पूरे रास्ते को हार्ड कोड नहीं करना है। –

+0

बढ़िया! मुझे बताने के लिए धन्यवाद। – esdotzed