android – 使用Ionic的文件输入进行文件上传(使用本机文件浏览器选择文件)

在我的离子应用程序标记中,我有

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

在我的控制器中,我从文件管理器中选择文件

 fileinput.addEventListener('change', function (event) {
        var file = event.target.files[0];
        console.log(file);

这在上传图像或视频时也很有效,如果使用下图中的文件管理器选项也是如此.但我从快速链接列表上传音频或使用第三方浏览器获取文件时遇到问题.在大多数其他情况下,返回File对象,我可以成功上传它.

《android – 使用Ionic的文件输入进行文件上传(使用本机文件浏览器选择文件)》

但我遇到两个问题

1)当我使用侧栏上的快速链接上传一个音频文件,列出所有音频文件及其名称.点击此列表中的文件我没有获得扩展名,也没有我需要的文件对象中的内容类型.但是,如果我使用文件管理器选项并导航到该文件,则同样有效.它几乎就像音频快速链接列表只有很少的细节,没有扩展或内容类型的细节.

《android – 使用Ionic的文件输入进行文件上传(使用本机文件浏览器选择文件)》

2)如果我使用第三方浏览器,如ES浏览器或图像侧边栏中显示的音乐应用程序,应用程序崩溃并停止.

那么有没有其他方法导航到从应用程序上传的文件或我做错了什么. ImagePicker cordova插件.只选择图像的限制是问题,否则就会使用它

最佳答案 Android没有使用上面的方法提供原始文件名和文件类型,这是android的安全问题.因此,我必须在下面的解决方案中检索正确的文件名,文件类型,文件大小和base64中的文件数据.

您可以按照我的解决方案here.

点赞