Study/SpringBoot

[SpringBoot] Multipart file 업로드 시 "Content type 'application/octet-stream' not supported" 에러

오늘만 사는 여자 2024. 2. 16. 14:11
728x90
반응형

Multipart file 업로드 시 아래와 같은 에러가 발생했다.

 

Content type 에러

분명 테스트 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()));
    }

 

 

출처 : https://velog.io/@jodawooooon/SpringBoot-Multipart-file-%EC%97%85%EB%A1%9C%EB%93%9C-%EC%8B%9C-Content-type-applicationoctet-stream-not-supported-%EC%97%90%EB%9F%AC

728x90
반응형