从手机获取图片让WebView支持本地上传图片
2024-10-12 10:26:25
一,从本地获取相册中的图片,并获取图片的URI
从本地选择图片上传到服务器时,首先要打开本地图片或文件管理器选择要上传的文件,代码如下
Intent intent =newIntent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, intentType);
然后重写onActivityResult()方法获取图片实际路径
@Override
protectedvoid onActivityResult(int requestCode,int resultCode,Intent data){
if(requestCode == FILECHOOSER_RESULTCODE){
if(null== mUploadMessage){
return;
}
Uri result = data ==null|| resultCode != RESULT_OK ?null: data.getData();
if(result ==null){
mUploadMessage =null;
return;
}
String filename = getRealPathFromURI(result);
if(filename !=null){
result =Uri.fromFile(newFile(filename));
}
mUploadMessage.onReceiveValue(result);
mUploadMessage =null;
}
}
我们的目标是通过获取到的URI用CursorLoader加载到Cursor中,然后去到path,网上基本上都是这样使用的,最近在android4.4上测试出现了问题
通过以上代码可以获取到URI,可是拿不到path。
所选择的图片URI原本是"
content://com.android.providers.media.documents/document/image:8191
",然后通过Uri uri= data.getData();所拿到的uri却变成了"
content://com.android.providers.media.documents/document/image%3A8191
",image后边的冒号自动转义了,而且uri也跟一般所见"
content://media/external/images/media/63
"这样的uri格式不同,网上查找后终于找到解决方法:
Intent i =newIntent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(Intent.createChooser( i,"选择图片"),WebViewActivity.FILECHOOSER_RESULTCODE );
换成以上代码启动选择图片就会调用系统默认的图片管理软件,选择,返回的uri就是标准的uri了。
最新文章
- 封装一些常用的js工具函数-不定时更新(希望大家积极留言,反馈bug^_^)
- 适配ios10(iTunes找不到构建版本)
- ORA-28000: the account is locked-的解决办法
- 防asp木马运行
- 用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败/OLE DB 错误: OLE DB 或 ODBC 错误 :
- 放在jsp头部的代码
- list,set,map,数组间的相互转换
- MaxSubArray 最大子数列和
- Node.js学习笔记(二):模块
- Sleeping会话导致阻塞原理(下)
- linux grep 和 sed使用
- VUE环境项目搭建以及简单的运行例子
- RC522射频卡读写模块驱动(仅读取)
- Bootstrap轮播如何支持移动端左右滑动
- 基于 SSL 的 Nginx 反向代理
- 【BZOJ 4819】 4819: [Sdoi2017]新生舞会 (0-1分数规划、二分+KM)
- Python2.7.14安装和pip配置安装及虚拟环境搭建
- 通过一个uri获取一个Bitmap对象
- C#中一道关于多线程的基础练习题——模拟仓库存销过程
- CentOS7.1 Liberty云平台之Dashboard篇(7)