详细问题描述
[内容] 安卓下通过input file获取文件,如果直接用弹出的自带文件选择器选择出来的文件名字不正确,比如会变成audio%3A10247或image%3A25368之类的乱码。除非再点击选择第三方文件选择器才会正常。如下面的代码,在浏览器中打开结果是对的,在hbuilder app中就不对。
重现步骤
[步骤] 获取input file的文件名
[结果] audio%3A10247或image%3A25368之类的乱码
[期望] 正确的文件名
运行环境
[系统版本] android 4.4
[浏览器版本] webview
[IDE版本] 最新
[mui版本]
附件
[代码片段]
<!DOCTYPE html>
<html lang="zh-hans">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>file test</title>
</head>
<body>
<input id="file-input" type="file">
<script>
document.getElementById('file-input').addEventListener('change', function(e){
alert(this.files[0].name);
});
</script>
</body>
</html>
[安装包]
联系方式
[QQ] 898310778
[电话]
2 个回复
lxl (作者)
赵梦欢 - 专注前端,乐于分享!
input file 是h5的标准,这个和5+ webview没有关系,至于你说的audio%3A10247,我觉得应该是和系统相关,我测试未曾发现这个问题,只有原生android 通过文件管理系统选择才会有类似:/document/image:883306 这种路径,这是uri路径,通常需要经过转换才能得到平台的绝对地址,不知道你这里获取name干嘛,因为浏览器安全性原则,不可能让你获取绝对地址的。
建议看看这篇文章:基于html5 File API的文件操作
lxl (作者)
建议你不要老是想当然,自己测试一下。我的是三星机安卓4.4
2016-08-19 14:19
lxl (作者)
在线测试网址:smalllong.github.io/test/
2016-08-19 14:20