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, и это сработало правильно.... пожалуйста, кто-нибудь знает, как это сделать? Ваш вклад будет высоко оценен.