lxl
lxl
  • 发布:2016-08-19 09:27
  • 更新:2016-08-19 10:47
  • 阅读:2551

【报Bug】input file获取到的文件的名字不正确

分类:HTML5+

详细问题描述
[内容] 安卓下通过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
[电话]

2016-08-19 09:27 负责人:无 分享
已邀请:
lxl

lxl (作者)

<!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>  
赵梦欢

赵梦欢 - 专注前端,乐于分享!

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

该问题目前已经被锁定, 无法添加新回复