在我的Ionic应用程序标记中

<input type="file" id="file" />

在我的控制器中,我从文件管理器中选择文件
 fileinput.addEventListener('change', function (event) {
        var file = event.target.files[0];
        console.log(file);

当我上传图片或视频时,这个功能很好。如果使用下面图片中的“文件管理器”选项,这个功能也很好。但当我从快速链接列表上传音频或使用第三方浏览器获取文件时遇到问题。在大多数情况下,文件对象被返回,我可以成功地上传它。
android - 使用Ionic的文件输入进行文件上传(使用 native 文件浏览器选择文件)-LMLPHP
但我遇到了两个问题
1)当我使用侧边栏上的快速链接上载一个音频文件时,其中列出了所有音频文件及其名称。单击此列表中的某个文件时,我无法获得所需的文件对象的扩展名或内容类型。但如果我使用文件管理器选项并导航到该文件,则同样有效。这几乎就像音频快速链接列表只有很少的细节,没有扩展或内容类型的细节。
android - 使用Ionic的文件输入进行文件上传(使用 native 文件浏览器选择文件)-LMLPHP
2)如果我使用第三方资源管理器(如ES资源管理器)或图片侧栏中显示的音乐应用程序,则应用程序会崩溃并停止。
那么有没有其他方法导航到要从应用程序上传的文件,或者我做错了什么。图像选择器Cordova插件。仅仅选择图像的局限性是个问题,否则就会用到

最佳答案

android没有使用上述方法给出原始文件名和文件类型,这是android的一个安全问题。因此,我必须制定以下解决方案来检索base64中正确的文件名、文件类型、文件大小和文件数据。
你可以遵循我的解决方案。

09-20 23:19