我正在尝试使用Cordova文件插件来读取保存在移动设备中的图像,这样我就可以获得它的base64编码,我需要远程存储它.问题是resolveLocalFilesystemUrl()方法,它应该提供一个File Entry对象,而不是似乎返回一个Entry对象,这意味着我无法调用它上面的文件.
下面是应该获取File Entry对象的代码,以便我可以使用file方法来读取文件本身.
MediaCapture.captureImage().then((images)=>{
self.image = images[0].localURL;
File.resolveLocalFilesystemUrl(self.image).then((entry)=>{
entry.file(function (file) {
var reader = new FileReader();
reader.onloadend = function (encodedFile) {
var src = encodedFile.target.result;
src = src.split("base64,");
var contentAsBase64EncodedString = src[1];
};
reader.readAsDataURL(file);
})
}).catch((error)=>{
console.log(error);
})
})
Run Code Online (Sandbox Code Playgroud)
我收到以下Typescript错误,它告诉我resolveLocalFilesystemUrl()正在使用Entry对象解析,该对象没有文件方法.(插件文档说resolveLocalFilesystemUrl使用File Entry对象解析,并且这样的对象肯定有一个提供文件本身的文件方法):
Property 'file' does not exist on type 'Entry'.
Run Code Online (Sandbox Code Playgroud)
我已经尝试了我提供resolveLocalFilesystemUrl()的路径类型.我尝试了沿着/ var/mobile/Applications // Documents/path/to/file和cdvfile:// localhost/temporary/filename行的本地URL的完整路径 - 两者都不起作用
所以具体的问题是为什么不会解析LocalFilesystemUrl()为我提供一个文件入口对象,或者我是如何让它这样做的?更一般地说,如果上述方法不起作用,如何在Ionic 2中读取文件以便我可以获得它的base64版本.
谢谢!