该插件工作正常,直到最近我开始面临问题,代码不执行也不会抛出错误。我想从相机捕获图像并将base64
字符串发送到服务器,这很容易,因为我可以直接获取捕获图像的base64
,但之后我使用了本地crop返回裁剪图像的URI
。所以现在我必须得到此图片的base64
,但Base64
插件已不再有效了。任何变通方法或帮助都非常感谢。
我使用的代码:
this.base64.encodeFile(filePath).then((base64File: string) => {
console.log(base64File); // Won't execute
}, (err) => {
console.log(err); // Won't execute
});
答案 0 :(得分:4)
我在同一个bug上花了几个小时。这个插件刚刚停止工作(它还是测试版)。我在我的代码中做了一些更改,并用File Plugin替换了Base64插件。
然后如果你有文件路径:
// split file path to directory and file name
let fileName = filePath.split('/').pop();
let path = filePath.substring(0, filePath.lastIndexOf("/") + 1);
this.file.readAsDataURL(path, fileName)
.then(base64File => {
console.log("here is encoded image ", base64File)
})
.catch(() => {
console.log('Error reading file');
})
答案 1 :(得分:0)
答案 2 :(得分:0)
在 Android 中,在 build.gradle(app) 文件中,将目标 SDK 更改为 targetSdkVersion 30。
然后转到您的 AndroidManifest.xml 并在应用程序标记中添加这一行 android:requestLegacyExternalStorage="true" ,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
>
<application
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:requestLegacyExternalStorage="true">
尝试应用此解决方案对我有用