缠汐 2018-09-12 05:27 采纳率: 0%
浏览 541
已结题

视频上传问题转不成file对象

需要做一个视频上传的功能,从本地相册拿到视频上传到服务器 onActivityResult 回调中拿不到file对象 求大神解答
try {
Uri uri = data.getData();
uri = geturi(this, data);

        if (uri.toString().indexOf("file") == 0) {
            file = new File(new URI(uri.toString()));
            path = file.getPath();
        } else {
            path = getPath(uri);
            if(null==path){
                path=  FileUtils.getPath(this,uri);
            }
            if(null==path){
                return;
            }
            file = new File(path);
        }


public static Uri geturi(Context context, android.content.Intent intent) {
    Uri uri = intent.getData();
    String type = intent.getType();
    if (uri.getScheme().equals("file") && (type.contains("image/"))) {
        String path = uri.getEncodedPath();
        if (path != null) {
            path = Uri.decode(path);
            ContentResolver cr = context.getContentResolver();
            StringBuffer buff = new StringBuffer();
            buff.append("(").append(MediaStore.Images.ImageColumns.DATA).append("=")
                    .append("'" + path + "'").append(")");
            Cursor cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                    new String[] { MediaStore.Images.ImageColumns._ID },
                    buff.toString(), null, null);
            int index = 0;
            for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) {
                index = cur.getColumnIndex(MediaStore.Images.ImageColumns._ID);
                // set _id value
                index = cur.getInt(index);
            }
            if (index == 0) {
                // do nothing
            } else {
                Uri uri_temp = Uri
                        .parse("content://media/external/images/media/"
                                + index);
                if (uri_temp != null) {
                    uri = uri_temp;
                    Log.i("urishi", uri.toString());
                }
            }
        }
    }
    return uri;
}
  • 写回答

2条回答 默认 最新

  • threenewbee 2018-09-12 07:56
    关注

    上传表单的 form,要设置 enctype="multipart/form-data"
    https://blog.csdn.net/mazhibinit/article/details/49667511

    评论

报告相同问题?

悬赏问题

  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题