安卓webview 用input type="file"无法得到文件名称和类型问题

时间:2022-04-27 18:10:10
用andorid的webview访问html页面,上面有

<textarea rows="5" draggable="false"></textarea>
<input type="file" id="t_file_id">
,选择完成之后,测试输出文件名,文件大小,文件类型等信息,
         $("#t_file_id").change(function(){
var file = this.files[0];
$("textarea").text(file.name + ";size:" + file.size + ";type:" + file.type + ";last:" + file.lastModified);
});
有的手机可以正常得到文件名,文件大小,文件类型,但用的手机不行,请问各位有遇到类似问题没,烦请回复下怎么处理的,谢谢。

14 个解决方案

#1


我也碰到这个问题,请问楼主是如何解决的,能否加下QQ 932518989 沟通下

#2


有没有设置webview支持js

#3


@dalor 我有设置支持JS的,只是如果是图片名称是中文的或者是路径中有中文,webview 的 html5 页面上就无法得到值了,但英文数字中划线下划线,这些都没有问题,很是奇怪的问题

#4


引用 3 楼 yuzimeng 的回复:
@dalor 我有设置支持JS的,只是如果是图片名称是中文的或者是路径中有中文,webview 的 html5 页面上就无法得到值了,但英文数字中划线下划线,这些都没有问题,很是奇怪的问题


引用 3 楼 yuzimeng 的回复:
@dalor 我有设置支持JS的,只是如果是图片名称是中文的或者是路径中有中文,webview 的 html5 页面上就无法得到值了,但英文数字中划线下划线,这些都没有问题,很是奇怪的问题


那就是中文可能产生乱码,所以找不到相关文件。处理一下字符编码看看:
getSettings().setDefaultTextEncodingName("utf-8");

#5


@开发者_android  我之前的第一反应也是设置这个编码,设置后还是一样,主要是不是文件内容显示乱码,是webview在选择完中文名称的图片后,不能读到数据了,onActivityResult方法的最后 valueCallback.onReceiveValue(result); 这行代码之前的result中是可以得图片数据的,到了html页面就没有了,不知道这中间出了什么问题了

#6


引用 5 楼 yuzimeng 的回复:
@开发者_android  我之前的第一反应也是设置这个编码,设置后还是一样,主要是不是文件内容显示乱码,是webview在选择完中文名称的图片后,不能读到数据了,onActivityResult方法的最后 valueCallback.onReceiveValue(result); 这行代码之前的result中是可以得图片数据的,到了html页面就没有了,不知道这中间出了什么问题了


我不是说文件内容乱码,我是说中文名称乱码。

#7


嗯,不是乱码,就是%xx%xx之类的,也就是手机没能最终解码,所以找不到,也就是读不到数据了

#8


引用 7 楼 yuzimeng 的回复:
嗯,不是乱码,就是%xx%xx之类的,也就是手机没能最终解码,所以找不到,也就是读不到数据了


是的,有的手机最终解码成功,上传时能识别文件路径;而有的则不能解码,导致无法识别正确的文件路径。请问最后有方法解决了么,我也遇到了同样的问题 安卓webview 用input type="file"无法得到文件名称和类型问题

#9


遇到同样问题,群主解决了没?

#10


引用 8楼asd123YZ 的回复:
Quote: 引用 7 楼 yuzimeng 的回复:

嗯,不是乱码,就是%xx%xx之类的,也就是手机没能最终解码,所以找不到,也就是读不到数据了


是的,有的手机最终解码成功,上传时能识别文件路径;而有的则不能解码,导致无法识别正确的文件路径。请问最后有方法解决了么,我也遇到了同样的问题 安卓webview 用input type="file"无法得到文件名称和类型问题
国外貌似有重写webview的代码,可以解决问题,只是升级andoid的版本,这个不会用到新性能

#11


引用 9楼niuemperor 的回复:
遇到同样问题,群主解决了没?
国外貌似有重写webview的代码,可以解决问题,只是升级andoid的版本,这个不会用到新性能

#12



我也遇上同样的问题,方便的话QQ 734289997

#13


我也遇上同样的问题,急求解 方便的话QQ 846842523

#14


我也遇到了这个问题,目前测试到小米就是有这个问题,有人解决了吗?

#1


我也碰到这个问题,请问楼主是如何解决的,能否加下QQ 932518989 沟通下

#2


有没有设置webview支持js

#3


@dalor 我有设置支持JS的,只是如果是图片名称是中文的或者是路径中有中文,webview 的 html5 页面上就无法得到值了,但英文数字中划线下划线,这些都没有问题,很是奇怪的问题

#4


引用 3 楼 yuzimeng 的回复:
@dalor 我有设置支持JS的,只是如果是图片名称是中文的或者是路径中有中文,webview 的 html5 页面上就无法得到值了,但英文数字中划线下划线,这些都没有问题,很是奇怪的问题


引用 3 楼 yuzimeng 的回复:
@dalor 我有设置支持JS的,只是如果是图片名称是中文的或者是路径中有中文,webview 的 html5 页面上就无法得到值了,但英文数字中划线下划线,这些都没有问题,很是奇怪的问题


那就是中文可能产生乱码,所以找不到相关文件。处理一下字符编码看看:
getSettings().setDefaultTextEncodingName("utf-8");

#5


@开发者_android  我之前的第一反应也是设置这个编码,设置后还是一样,主要是不是文件内容显示乱码,是webview在选择完中文名称的图片后,不能读到数据了,onActivityResult方法的最后 valueCallback.onReceiveValue(result); 这行代码之前的result中是可以得图片数据的,到了html页面就没有了,不知道这中间出了什么问题了

#6


引用 5 楼 yuzimeng 的回复:
@开发者_android  我之前的第一反应也是设置这个编码,设置后还是一样,主要是不是文件内容显示乱码,是webview在选择完中文名称的图片后,不能读到数据了,onActivityResult方法的最后 valueCallback.onReceiveValue(result); 这行代码之前的result中是可以得图片数据的,到了html页面就没有了,不知道这中间出了什么问题了


我不是说文件内容乱码,我是说中文名称乱码。

#7


嗯,不是乱码,就是%xx%xx之类的,也就是手机没能最终解码,所以找不到,也就是读不到数据了

#8


引用 7 楼 yuzimeng 的回复:
嗯,不是乱码,就是%xx%xx之类的,也就是手机没能最终解码,所以找不到,也就是读不到数据了


是的,有的手机最终解码成功,上传时能识别文件路径;而有的则不能解码,导致无法识别正确的文件路径。请问最后有方法解决了么,我也遇到了同样的问题 安卓webview 用input type="file"无法得到文件名称和类型问题

#9


遇到同样问题,群主解决了没?

#10


引用 8楼asd123YZ 的回复:
Quote: 引用 7 楼 yuzimeng 的回复:

嗯,不是乱码,就是%xx%xx之类的,也就是手机没能最终解码,所以找不到,也就是读不到数据了


是的,有的手机最终解码成功,上传时能识别文件路径;而有的则不能解码,导致无法识别正确的文件路径。请问最后有方法解决了么,我也遇到了同样的问题 安卓webview 用input type="file"无法得到文件名称和类型问题
国外貌似有重写webview的代码,可以解决问题,只是升级andoid的版本,这个不会用到新性能

#11


引用 9楼niuemperor 的回复:
遇到同样问题,群主解决了没?
国外貌似有重写webview的代码,可以解决问题,只是升级andoid的版本,这个不会用到新性能

#12



我也遇上同样的问题,方便的话QQ 734289997

#13


我也遇上同样的问题,急求解 方便的话QQ 846842523

#14


我也遇到了这个问题,目前测试到小米就是有这个问题,有人解决了吗?