Android File Upload - Retrofit Multipart with backend as Java Rest API

135 views Asked by At

Could you please help me with the Multipart Retrofit file upload with backend java rest api(mysql db). I tried with the below code but it is not working..

Retrofit part

Activity.java

private void checkingst(File file){
   RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"),file);
   MultipartBody.Part body = MultipartBody.Part.createFormData("file",file.getName(),requestBody);

   Call<String> chkst = FarmOwnerApi.getServices().uploadFile(body);
    chkst.enqueue(new Callback<String>() {
        @Override
        public void onResponse(Call<String> call, Response<String> response) {
            if(!response.isSuccessful())
            {
                return;
            }

            Toast.makeText(getApplicationContext(),"Uploaded",Toast.LENGTH_SHORT).show();
        }

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

        }
    });
}

FarmOwnerApi.java

public static FarmOwnerService farmOwnerServices = null;
private static final String Base_URL = "http://192.168.1.6:8080/myfarm/farmowner/";

public static FarmOwnerService getServices()
{
    if(farmOwnerServices==null)
    {
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(Base_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        farmOwnerServices = retrofit.create(FarmOwnerService.class);
    }
    return farmOwnerServices;
}
public interface FarmOwnerService {

    @Multipart
    @POST("uploadFile")
    Call<String> uploadFile(@Part MultipartBody.Part file);

Backend - Java Rest API

@RequestMapping(value="/uploadFile" )
public String uploadFile(@RequestParam("file") MultipartFile file) {
0

There are 0 answers