离子2 - 将相机图片保存到javascript文件对象进行上传

时间:2017-05-01 17:07:40

标签: javascript cordova ionic2 cordova-plugins

我想创建一个javascript文件对象,我刚刚使用Ionic(cordova)Native Camera Plugin进行上传。

Camera.getPicture().then(imageData => {
  let file = new File([???], 'filename', {type:'image/jpeg', lastModified:moment.now()})
})

我不确定需要进入第一个参数来将图像存储到文件对象。

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用相机选项返回图像的base64表示形式,然后将其转换为blob对象并将其传递给File构造函数。

或者您可以使用相机插件选项获取文件的路径,然后使用Cordova文件插件,您可以使用文件读取器获取文件条目并以这种方式传入文件。

与此类似:

var cameraOptions = {
    destinationType: Camera.DestinationType.FILE_URI
};

function cameraSuccess(data){

    window.resolveLocalFileSystemURL(data, function(fileEntry) {
        fileEntry.file(function(fileObject){

            var newFile = new File([fileObject], 'filename', {type:'image/jpeg', lastModified:moment.now()})

        }, fileFail);
    }, fileFail);

}

function fileFail(){

    //Handle file errors

}

navigator.camera.getPicture(cameraSuccess, cameraError, cameraOptions);

您需要将上述代码应用于离子,但希望您明白这一点。

以下是离子文件插件文档的链接:

https://ionicframework.com/docs/native/file/