Horje
Send image file to server useing Retrofit Code Example
Send image file to server useing Retrofit
//Here i'm using PATCH
//You can use POST or anything

/*---Create ApiInterface class---*/
@Multipart
    @PATCH("service/{id}/")
    Call<EditProfile> uploadImage(
            @Header("Authorization") String token,
            @Path("id") int serviceID,
            @Part MultipartBody.Part part
            //@Part("banner") RequestBody requestBody
    );
    
    
/*---Create API class---*/
public class NetworkClient {
    private static Retrofit retrofit;
    private static UrlLists urlLists = new UrlLists();

    public static Retrofit getRetrofit() {
        OkHttpClient okHttpClient = new OkHttpClient.Builder().build();
        if (retrofit == null) {
            retrofit = new Retrofit.Builder().baseUrl(urlLists.getBaseUrl()).
                    addConverterFactory(GsonConverterFactory.create()).client(okHttpClient).build();
        }
        return retrofit;
    }
}


/*---Get Image from gallery---*/
@Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode == 1 && resultCode == Activity.RESULT_OK)
        {
            Uri selectedImage = data.getData();
            String filePath = getPath(selectedImage);  //Get image file path on phone

            sendNewImage(filePath, "logo", selectedImage);
        }
        
    }
    
    public String getPath(Uri uri) {
        String[] projection = {MediaStore.MediaColumns.DATA};
        Cursor cursor = managedQuery(uri, projection, null, null, null);
        int column_index = cursor
                .getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
        cursor.moveToFirst();
        String imagePath = cursor.getString(column_index);

        return cursor.getString(column_index);
    }
    

/*---Send Data---*/
private void sendNewImage(String filePath, String key, Uri imageUri) {
        File file = new File(filePath);

        Retrofit retrofit = NetworkClient.getRetrofit();

        RequestBody requestBody = RequestBody.create(MediaType.parse("image/*"), file);
        MultipartBody.Part parts = MultipartBody.Part.createFormData(key, file.getName(), requestBody);

        ApiInterface uploadApis = retrofit.create(ApiInterface.class);
        uploadApis.uploadImage("Bearer " + TOKEN, ID, parts).enqueue(
                new Callback<EditProfile>() {
                    @Override
                    public void onResponse(Call<EditProfile> call, Response<EditProfile> response) {
                        if (response.isSuccessful())
                        {
                            Toast.makeText(BaseInfoActivity.this, "اطلاعات بروزرسانی شد", Toast.LENGTH_SHORT).show();
                            if (key.equals("logo")) {
                                userLogo.setImageURI(imageUri);
                            } else if (key.equals("banner")) {
                                userBanner.setImageURI(imageUri);
                            }
                        }
                        else
                        {
                            Toast.makeText(BaseInfoActivity.this, "مشکل در بروزرسانی، کمی دیگر امتحان کنید", Toast.LENGTH_LONG).show();
                            Log.d("TAG", "RESPONSE : " + response);
                        }

                    }

                    @Override
                    public void onFailure(Call<EditProfile> call, Throwable t) {

                    }
                }
        );
    }




Java

Related
basic java programs Code Example basic java programs Code Example
how to write a perfect shuffle method in java Code Example how to write a perfect shuffle method in java Code Example
java lexographic Code Example java lexographic Code Example
libgdx load file Code Example libgdx load file Code Example
how good at you are at java Code Example how good at you are at java Code Example

Type:
Code Example
Category:
Coding
Sub Category:
Code Example
Uploaded by:
Admin
Views:
7