Android Java - Как получить реальный путь к файлу (изображению и видео) и загрузить с помощью AsyncHttp на сервер

У меня есть проект, который мне нужен, чтобы позволить пользователям загружать изображения и видео на сервер... в настоящее время пользователи могут выбирать изображения и видео... но я не знаю, как получить реальный путь к файлу, а затем загрузить его с помощью сообщения AsyncHttp..,

это мой код для выбора изображения ниже:

 pphoto.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);

        }


    });

и это мой код результата активности

protected void onActivityResult(int requestCode, int resultCode,
                                Intent imageReturnedIntent){

    super.onActivityResult(requestCode, resultCode, imageReturnedIntent);

    switch(requestCode) {
        case PICK_IMAGE_REQUEST: // Do your stuff here...
            if (resultCode == RESULT_OK) {

                final String path = imageReturnedIntent.getData().getPath();


                final File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath());




                Uri selectedData = imageReturnedIntent.getData();


                final Button up = (Button) findViewById(R.id.up);

                final ImageView etPhoto = (ImageView) findViewById(R.id.imgg);



                String[] filePathColumn = {MediaStore.Images.Media.DATA};

                Cursor cursor = getContentResolver().query(
                        selectedData, filePathColumn, null, null, null);
                cursor.moveToFirst();

                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                final String filePath = cursor.getString(columnIndex);
                cursor.close();


                final Bitmap dImage = BitmapFactory.decodeFile(filePath);


                etPhoto.setImageURI(selectedData);

тогда, если я хочу отправить на сервер... это код, который я использую, но не работает...

AsyncHttpClient client = new AsyncHttpClient();
                        RequestParams params = new RequestParams();
                        params.put("token", "token");
                        try {
                            params.put("photo", file);
                        } catch (FileNotFoundException e) {
                            e.printStackTrace();
                        }
                        client.post("http://10.205.165.237/Android/uploadimages.php", params, new AsyncHttpResponseHandler() {

                            @Override
                            public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                                System.out.println("statusCode " + statusCode);//statusCode 200
                            }

                            @Override
                            public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

                            }
                        });

Теперь моя проблема в том, что я не знаю, как получить реальный путь к файлу, который будет использоваться для загрузки, и я не уверен, что сообщение AsyncHttp правильное, потому что я пробовал код php, которому я отправляю файл, с помощью формы html, и это сработало правильно.... пожалуйста, кто-нибудь знает, как это сделать? Ваш вклад будет высоко оценен.

0 ответов

Другие вопросы по тегам