zoukankan      html  css  js  c++  java
  • 从手机获取图片让WebView支持本地上传图片

    一,从本地获取相册中的图片,并获取图片的URI

    从本地选择图片上传到服务器时,首先要打开本地图片或文件管理器选择要上传的文件,代码如下
    1. Intent intent =newIntent(Intent.ACTION_GET_CONTENT);
      intent.setType("image/*");
      startActivityForResult(intent, intentType);
      

        

    然后重写onActivityResult()方法获取图片实际路径
    1. @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格式不同,网上查找后终于找到解决方法:
    1. Intent i =newIntent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
      startActivityForResult(Intent.createChooser( i,"选择图片"),WebViewActivity.FILECHOOSER_RESULTCODE );
    换成以上代码启动选择图片就会调用系统默认的图片管理软件,选择,返回的uri就是标准的uri了。





  • 相关阅读:
    01_根据Id查询User的数据
    rest_framework常用设置
    django AnonymousUser
    获取视频时长和文件大小
    xadmin增加用户 除了账号和密码 添加其他信息
    Django 重写用户模型
    xadmin 常见错误
    Django在根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete'
    xadmin设置
    python3安装xadmin出现 UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 3444: illegal multibyte sequence
  • 原文地址:https://www.cnblogs.com/fighter/p/d4e35b0f1feb96b0840ac29b74b62b09.html
Copyright © 2011-2022 走看看