我想创建一个javascript文件对象,我刚刚使用Ionic(cordova)Native Camera Plugin进行上传。
Camera.getPicture().then(imageData => {
let file = new File([???], 'filename', {type:'image/jpeg', lastModified:moment.now()})
})
我不确定需要进入第一个参数来将图像存储到文件对象。
谢谢!
答案 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);
您需要将上述代码应用于离子,但希望您明白这一点。
以下是离子文件插件文档的链接: