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

Posted

技术标签:

【中文标题】我如何从 PhoneGap camera.getPicture 获取 File 对象?【英文标题】:How would I get a File object from PhoneGap camera.getPicture? 【发布时间】:2014-03-03 17:46:00 【问题描述】:

这可能很简单,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
);

如果有区别,我也可以更改为 destinationType: window.Camera.DestinationType.DATA_URL

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

【问题讨论】:

【参考方案1】:

应该这样做。

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
);

【讨论】:

对于其他希望执行此操作的其他人的答案的补充:Cordova FileEntry 对象具有返回 javascript File 对象的 file() 方法。【参考方案2】:
window.resolveLocalFileSystemURI(fileURI, function(fileEntry)  /* your code here */ );

【讨论】:

resolveLocalFileSystemURI 已弃用。请改为调用 resolveLocalFileSystemURL。 我收到了这个Uncaught TypeError: window.resolveLocalFileSystemURL is not a function的错误 我的代码如波涛navigator.camera.getPicture((imgURI) => window.resolveLocalFileSystemURL(imgURI, (fileUri) => const currentUpload = new Upload(fileUri.file()); this.appConfigService.pushUpload(currentUpload, this.esCode); document.getElementById('msg').textContent = imgURI; , err => console.log(err, 'navigator.camera.getPicture3'); ); , this.uploadfai, opts);

以上是关于我如何从 PhoneGap camera.getPicture 获取 File 对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 phonegap 从 Facebook API 获取朋友出生日期列表

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

如何从phonegap启动ios模拟器

如何从sqlite +phonegap中的表中获取第一列名称

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

如何使用 phonegap 将文件从一个位置移动/复制到另一个位置