Это мой метод бэкэнда.
@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