2014-03-03 115 views
5

這可能很簡單,並且由PhoneGap的「Camera」插件,「File」插件或「File-Transfer」插件中的某些功能組合來涵蓋。據我所知,用戶可以選擇一個文件:如何從PhoneGap camera.getPicture獲取File對象?

navigator.camera.getPicture(function (fileURI) { 

    // *** need help here *** 

}, function() 
    // handle errors 
}, { 
    destinationType: window.Camera.DestinationType.FILE_URI, 
    sourceType: window.Camera.PictureSourceType.PHOTOLIBRARY, 
    mediaType: window.Camera.MediaType.ALLMEDIA 
}); 

我還可以換到destinationType: window.Camera.DestinationType.DATA_URL如果有差別。

我在成功處理程序中的目標是獲取File對象(https://developer.mozilla.org/en-US/docs/Web/API/File)。

回答

8

這樣的事情應該這樣做。

navigator.camera.getPicture(function (fileURI) { 

    window.resolveLocalFileSystemURI(fileURI, 
     function(fileEntry){ 
      alert("got image file entry: " + fileEntry.fullPath); 
     }, 
     function(){//error} 
    ); 

}, function(){ 
// handle errors 
}, { 
    destinationType: window.Camera.DestinationType.FILE_URI, 
    sourceType: window.Camera.PictureSourceType.PHOTOLIBRARY, 
    mediaType: window.Camera.MediaType.ALLMEDIA 
}); 
+5

對於希望這樣做的其他人來說,此答案的補充:Cordova FileEntry對象具有一個返回JavaScript File對象的file()方法。 – Justin

1
window.resolveLocalFileSystemURI(fileURI, function(fileEntry) { /* your code here */ });