在webview中选择图片一般是设置WebChromeClient,然后重写openFileChooser方法,最后在onActivityResult中得到图片Uri
问题来了,这个Uri一般都没有图片后缀(.jpg.png),像下面这样
filecontent://media/external/images/media/68987
将图片上传到服务器后,保存在服务器的文件名字就是68987了,文件没有后缀,将后缀改为.jpg之后,图片是正确的,,,
请问,大家遇到这个问题是怎么解决的,,,,,
1
yuxing1171 2015-02-06 16:58:05 +08:00
可以根据图片的mime信息主动添加后缀。
|
2
Registering OP @yuxing1171 那这个问题得留给服务器解决了。。。。
|
3
pubby 2015-02-06 17:08:55 +08:00
除了能得到Uri,你也可以知道文件名的吧?(不确定)
构造上传数据的时候,除了文件数据还可以指定件名啊 |
4
Registering OP 我是直接设置webview让它响应页面里的<input type = "file",,,,>选择文件的按钮,,
发送的API最后一步只能指定Uri,没有其他API给设置相关属性,, 现在暂时让服务器收到mutipartFile后处理一下文件类型,,, |
5
Registering OP @pubby 如上
|
6
pubby 2015-02-06 17:44:30 +08:00
@Registering 不好意思,我还以为上传处理在webview外面完成。
|
7
faywong8888 2015-02-06 19:32:31 +08:00
后缀你自己把文件名称弄对就行了,同时注意:openFileChooser回调在android 4.4里办不会被回调的。
|
8
Registering OP |
9
iv2ex 2015-10-09 10:56:03 +08:00
可以试试另一个思路:
根据 Uri 获取文件的真实路径, 然后再把真实路径转成 Uri. 这时候的 Uri 就是带文件真实名和后缀的. // 根据 Uri 获取文件真实路径的代码: https://gist.github.com/atearsan/1f0846e6dcdb3d8f3d1d // 真实路径转成 Uri 的代码: Uri.fromFile(new File(filePath)); // Uri 打印结果: file:///storage/emulated/0/DCIM/Camera/IMG_20151006_193049.jpg |