[英]Getting error while uploading image using Retrofit2.0
我正在將圖像文件上傳到服務器,該文件會引發成功響應(200)錯誤。
我收到的錯誤消息是:無效的文件類型! 僅允許以下文件類型: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
這是我的代碼段:
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();
}
});
}
在這一點上我很震驚。 誰能幫我嗎。 提前致謝。
代替
RequestBody fileBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
map.put("file\"; filename=\"" + file.getName(), fileBody);
試試這個代碼
RequestBody fileBody = RequestBody.create(MediaType.parse("image/png"), file);
map.put("files\"; filename=\"image.png\"", fileBody);
界面應如下所示:
@Multipart
@POST("mysite/upload")
Call<JsonElement> upload(@PartMap Map<String, RequestBody> params);
注意:此代碼可以在改造2.0.0-beta3上使用並經過測試
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.