Multipart file 업로드 시 아래와 같은 에러가 발생했다.
분명 테스트 Controller에서 @RequestParam
을 사용해 테스트 해봤을 때에는 S3 버킷에 잘 업로드 된 것을 확인했는데,
실제 게시판 글 등록 Controller에 적용해 보니 Content Type
에러가 계속 발생했다. front 단에서 헤더를 잘 설정 해 주었는데도 말이다..
Content type 'application/octet-stream' not supported
@PostMapping()
@ApiOperation(value = "게시판 공고 등록", notes = "게시판 공고를 등록한다")
@ApiResponses({
@ApiResponse(code = 204, message = "성공"),
@ApiResponse(code = 401, message = "인증 실패"),
@ApiResponse(code = 404, message = "사용자 없음"),
@ApiResponse(code = 500, message = "서버 오류")
})
public ResponseEntity<BoardRegisterRes> registerAdoptBoard(@RequestParam(value="data") BoardRegisterPostReq boardRegisterPostReq,
@RequestParam(value="thumbnailUrl") MultipartFile thumbnailUrl,
@RequestParam(value="fileList") List<MultipartFile> fileList
) throws IOException {
FormData하나를 DTO 형식으로 매핑해서 @ModelAttribute
로 가져오고, consumes = {"multipart/form-data"}
을 해줬더니 해결되었다.
@PostMapping(consumes = {"multipart/form-data"})
@ApiOperation(value = "게시판 공고 등록", notes = "게시판 공고를 등록한다")
@ApiResponses({
@ApiResponse(code = 204, message = "성공"),
@ApiResponse(code = 401, message = "인증 실패"),
@ApiResponse(code = 404, message = "사용자 없음"),
@ApiResponse(code = 500, message = "서버 오류")
})
public ResponseEntity<BoardRegisterRes> registerAdoptBoard(@ModelAttribute BoardRegisterPostReq boardRegisterPostReq) throws IOException {
Board board = boardService.registerBoard(boardRegisterPostReq);
System.out.println(board);
return ResponseEntity.ok(BoardRegisterRes.of(200, "공고가 정상적으로 등록되었습니다", board.getId()));
}