Создайте Uri для файла, бит, который не может отправить данные

#android #file-upload #uri

#Android #загрузка файла #uri

Вопрос:

Создайте Uri для файла, бит, который не может отправить данные

Я использую этот метод

 if(requestCode == VIDEO){
                image.setVisibility(View.GONE);
                previewImageView.setVisibility(View.VISIBLE);
                //video.setVisibility(View.VISIBLE);
                contentURI = data.getData();
                videoPath = getPath(getApplicationContext(),contentURI);
                Glide.with(this).load(contentURI).into(previewImageView);
                video.setVideoURI(contentURI);
                video.requestFocus();
                //video.start();
                MediaController mc= new MediaController(UploadActivity.this);
                video.setMediaController(mc);
                check_video = "ok";
            }

public String getPath(Uri uri) {
        String[] projection = { MediaStore.Video.Media.DATA };
        Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
        if (cursor != null) {
            // HERE YOU WILL GET A NULLPOINTER IF CURSOR IS NULL
            // THIS CAN BE, IF YOU USED OI FILE MANAGER FOR PICKING THE MEDIA
            int column_index = cursor
                    .getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
            cursor.moveToFirst();
            return cursor.getString(column_index);
        } else
            return null;
    }
 

Я могу получить значение uri

Нравится

содержимое://com.google.android.apps.docs.storage/document/acc=1;doc=135

затем при использовании нажмите отправить данные, я получил код ошибки.

 File videofile = new File(contentURI.getPath());
                        Uri videouri = Uri.fromFile(videofile);
                        uploadFile(videouri);

private void uploadFile(Uri videoPath) {

            // Map is used to multipart the file using okhttp3.RequestBody
            Map<String, RequestBody> map = new HashMap<>();
            File file = new File(videoPath);
            // Parsing any Media type file
            RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), file);
            map.put("file"; filename=""   file.getName()   """, requestBody);
            ApiConfig getResponse = AppConfig.getApiClient().create(ApiConfig.class);
            Call<ServerResponse> call = getResponse.upload("token", map);
 

код ошибки

проблема с загрузкой видеофайла:/document/acc=1;doc%sD135 (такого файла или каталога нет)

Комментарии:

1. Вы хотите загрузить видео или просто выбрать video и получить его путь

2. @SarveshHon Дорогой, я хочу загрузить видео, когда пользователь нажимает кнопку отправки. Поэтому, когда пользователь нажимает кнопку отправки, он запускает процесс uploadFile ().

3. Используйте полный uri для загрузки вашего файла. Не часть пути. И не используйте класс File.