【发布时间】:2017-05-23 00:32:33
【问题描述】:
我正在尝试使用Cordova file plugin 来读取保存在移动设备中的图像,这样我就可以获得它的base64 编码,我需要远程存储它。问题是 resolveLocalFilesystemUrl() 方法,它应该提供一个 File Entry 对象,而不是似乎返回一个 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);
})
})
我收到以下 Typescript 错误,它告诉我 resolveLocalFilesystemUrl() 正在使用没有文件方法的 Entry 对象进行解析。 (插件文档说resolveLocalFilesystemUrl用一个File Entry对象解析,这样一个对象肯定有一个提供文件本身的file方法):
Property 'file' does not exist on type 'Entry'.
我已经尝试过我提供的路径类型 resolveLocalFilesystemUrl()。我已经尝试了沿 /var/mobile/Applications//Documents/path/to/file 行的完整路径和沿 cdvfile://localhost/temporary/filename 行的本地 URL - 都不起作用
所以具体的问题是为什么 resolveLocalFilesystemUrl() 不为我提供一个文件条目对象,或者我如何让它这样做?更一般地说,如果上述方法不起作用,我如何在 Ionic 2 中读取文件以便获得它的 base64 版本。
谢谢!
【问题讨论】:
标签: typescript base64 ionic2 cordova-plugins