2016-02-07 4 views
0

Je télécharge un fichier image sur le serveur qui renvoie l'erreur avec succès (200).Erreur lors du chargement de l'image en utilisant Retrofit2.0

Le message d'erreur que j'obtiens est: Type de fichier invalide! Seuls les types de fichiers suivants sont autorisés: bmp, csv, doc, docx, eps, flv, gif, jpeg, jpg, mkv, mov, mp3, mp4, mpeg, mpg, ogg, pdf, png, psd, rar, swf, txt , wav, wma, wmv, xls, xlsx, zip

Voici mon extrait de code:

Uri imageUri = Uri.fromFile(new File(fileName)); 

Map<String, RequestBody> map = new HashMap<>(); 
if (imageUri != null) { 
    File file = new File(imageUri.getPath()); 
    RequestBody fileBody = RequestBody.create(MediaType.parse("multipart/form-data"), file); 
    map.put("file\"; filename=\"" + file.getName(), fileBody); 
} 

Call<UploadResponse> call = FotomateClient.getFotomateAPI().upload(authorization, map); 
call.enqueue(new Callback<UploadResponse>() { 
    @Override 
    public void onResponse(Response<UploadResponse> response) { 
     if (response != null) 
      if (response.body() != null) 
       if (response.body().getCode() != null) 
        System.out.println(response.body().getCode()); 
     pd.dismiss(); 
     if (response.body().isSuccess()) { 
      postCart("Bearer " + fm.getAccessToken(), response.body().getCode(), qty); 
      dbHelper.deleteImage(id); 

     } 
    } 

    @Override 
    public void onFailure(Throwable t) { 
     t.printStackTrace(); 
    } 
}); 
} 

Je strucked à ce stade. Quelqu'un peut m'aider. Merci d'avance.

+0

Quel est le format de fichier de l'image f ile que vous téléchargez? Vérifiez si c'est parmi les types de fichiers autorisés. –

+0

jpg et png @RohitSharma – Santosh

Répondre

0

Au lieu de

RequestBody fileBody = RequestBody.create(MediaType.parse("multipart/form-data"), file); 
map.put("file\"; filename=\"" + file.getName(), fileBody); 

Essayez ce code

RequestBody fileBody = RequestBody.create(MediaType.parse("image/png"), file); 
map.put("files\"; filename=\"image.png\"", fileBody); 

et l'interface devrait ressembler à:

@Multipart 
@POST("mysite/upload") 
Call<JsonElement> upload(@PartMap Map<String, RequestBody> params); 

Note: ce code fonctionne et testé sur la modernisation 2.0.0-beta3

+0

Merci de votre réponse, mais cela ne fonctionne pas @penguin – Santosh