Я сталкиваюсь с проблемой при загрузке файла на сервер с помощью Spring MVC и Retrofit 2.0 - PullRequest
1 голос
/ 07 марта 2019

Это мой метод бэкэнда.

  @IsAdmin
@RequestMapping(value = "/student/upload/file/{operation}/{format}/", 
method = RequestMethod.POST)
 public ResponseEntity<?> handleStudentFile(@PathVariable String 
operation, @PathVariable String format, @RequestParam("file") 
  MultipartFile file) {
    return studentHandler.handleStudent(operation, format, file);
}

И вот мой метод Android,

@Multipart
    @POST("admin/student/upload/file/{operation}/{format}/")
    Call<ServerResponse> uploadNew(@Path("operation") String 
 operation, @Path("format") String format, @PartMap Map<String, 
MultipartBody> map);

и

   Map<String, MultipartBody> map = new HashMap<>();
           File file = new File(filePath);
        MultipartBody requestBody = new MultipartBody.Builder().setType(MultipartBody.FORM)
                .addFormDataPart("file", file.getName(),

RequestBody.create(MediaType.parse("application/vnd.ms-excel"), file))
//                    .addFormDataPart("some-field", "some-value")
                    .build();
            map.put("file\"; filename=\"" + file.getName() + "\"", 
requestBody);
            ApiCallService.action(getActivity(), map, 
ACTION_UPLOAD_EXCEL);

При указанном выше методе файл не с правильным содержимым,

Я пробовал таким образом,

  @Multipart
    @POST("admin/student/upload/file/{operation}/{format}/")
    public Call<ServerResponse> upload(@Path("operation") String 
operation, @Path("format") String format, @Part("file") RequestBody 
file);



 MultipartBody.Builder multiPartBody =new 
 MultipartBody.Builder().setType(MultipartBody.FORM)
                    .addFormDataPart("file", file.getName(),

 RequestBody.create(MediaType.parse("application/vnd.ms-excel"), 
 file));

             ApiCallService.action(getActivity(), 
  multiPartBody.build(), ACTION_UPLOAD_EXCEL2);

Помоги мне, парень, что я делаю не так, я застрял.

Я получаю и исключение в бэкэнде,

 org.apache.poi.openxml4j.exceptions.InvalidFormatException: Your 
  InputStream was neither an OLE2 stream, nor an OOXML stream
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...