android - 使用 Ionic 的文件输入上传文件(使用 native 文件浏览器选择文件)

标签 android angularjs html cordova ionic-framework

在我的 ionic 应用标记中有

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

在我的 Controller 中,我正在从文件管理器中选择文件

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

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

enter image description here

但是我遇到了两个问题

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

enter image description here

2) 如果我使用第三方资源管理器,如 ES 资源管理器或图像侧边栏中显示的音乐应用程序,应用程序会崩溃并停止。

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

最佳答案

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

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

关于android - 使用 Ionic 的文件输入上传文件(使用 native 文件浏览器选择文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38606003/

相关文章:

java - 我正在尝试根据用户选择的日期过滤 firestore 内容。说显示 2 月 14 日的所有数据

angularjs - 以下代码中发生的 Array Reduce 功能

html - 消除 DIV 元素中的 overflow-y 跳转

java - 如何滚动屏幕内存位图

java - 使用 SimpleXML 和 Java 实现多个同名元素

android - ajaxSuccess之后无法获取getCurrentUser()

javascript - 连接特定列中的数据

javascript - 如何简化状态相关的 getter,最好是以 SOLID 的方式?

php - 我如何回应变量?

java - 如何将 HTML 和 CSS 规范添加到这个简单的 Spring 项目中?