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

时间:2016-07-27 07:06:03

标签: android angularjs html5 cordova ionic-framework

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

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

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

 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插件。选择图像的局限性是问题,否则就会使用

1 个答案:

答案 0 :(得分:1)

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

您可以按照我的解决方案enter image description here