我如何从PhoneGap camera.getPicture获取File对象?

max*_*e14 7 javascript android ios cordova

这可能很简单,并且由PhoneGap的"Camera"插件,"File"插件或"File-Transfer"插件中的某些功能组合覆盖.我了解用户可以选择一个文件:

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
});
Run Code Online (Sandbox Code Playgroud)

我也可以改变,destinationType: window.Camera.DestinationType.DATA_URL如果这有所作为.

我在成功处理程序中的目标是获取File对象(https://developer.mozilla.org/en-US/docs/Web/API/File).

Bli*_*ill 9

这样的事情应该做到这一点.

navigator.camera.getPicture(function (fileURI) {

    window.resolveLocalFileSystemURL(fileURI, 
        function(fileEntry){
            alert("got image file entry: " + fileEntry.fullPath);
            // fileEntry.file() should return a raw HTML File Object
        },
        function(){//error}
    );

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

  • 对于希望这样做的任何其他人来说,这个答案的补充:Cordova FileEntry对象有一个file()方法,它返回一个javascript文件对象. (7认同)