Я обновляю изображение своего профиля, используя модификацию. Я должен отправить объект изображения и текущий идентификатор пользователя для входа, вот мой код ...
private void uploadProfileImage(){
uid = DatabaseUtil.getInstance().getUser().getProfile().getUmeta().getId();
mRegProgress.setTitle("Updating profile Image");
mRegProgress.setMessage("Please wait...");
mRegProgress.setCanceledOnTouchOutside(false);
mRegProgress.show();
File profile_image_file = new File(mediaPath);
RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), profile_image_file);
MultipartBody.Part profile_image = MultipartBody.Part.createFormData("file", profile_image_file.getName(), requestBody);
Call<ResponseBody> call = RetrofitClient.getInstance().getApi().uploadProfile(uid , profile_image);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
if (response.code() == 200){
mRegProgress.hide();
String s = response.body().toString();
pDialog = new SweetAlertDialog(getActivity(), SweetAlertDialog.SUCCESS_TYPE);
pDialog.setTitleText("Good job!");
pDialog.setContentText("Profile image successfully!");
pDialog.show();
}else if (response.code() == 203){
Toast.makeText(getActivity() , "Image upload Error" , Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<ResponseBody> call, Throwable t) {
t.printStackTrace();
}
});
}
я тоже использую этот код ...
case SELECT_PROFILE_PIC:
if (resultCode == RESULT_OK) {
// Get the Image from data
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getActivity().getContentResolver().query(selectedImage, filePathColumn, null, null, null);
assert cursor != null;
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
mediaPath = cursor.getString(columnIndex);
// Set the Image in ImageView for Previewing the Media
dd_profile_view.setImageBitmap(BitmapFactory.decodeFile(mediaPath));
cursor.close();
uploadProfileImage();
}
break;
это то, что я посылаю в моем коде
но изображение не обновляется ... я попробовал api на почтовом человеке, оно корректно обновляет картинку профиля ... пожалуйста, скажите мне, в чем проблема и как я могу ее решить Спасибо
вот мой api
звонок ..
@Multipart
@POST("media/upload-media")
Call<ResponseBody> uploadProfile(
@Query("id") String id,
@Part MultipartBody.Part profile_image
);
Я добавляю репродукцию, получая от почты человека ..
это закрытый ответ почтальона