Ajax를 통해 파일과 Json 업로드 후 Controller로 받기

2023. 5. 12. 17:40·Java/Spring Boot
목차
  1. 🟧 Ajax & Spring boot Controller
728x90

항상 Ajax를 통해 정보를 전송할 때 json만 전송하다 보니 파일과 함께 어떻게 보내는지 삽질을 좀 했다

하지만 늘 그랬듯이 삽질을 하고 내용을 정리하니 이게 이렇게 긴 시간을 잡아먹었어야 했는가 싶다


🟧 Ajax & Spring boot Controller

⏹️ Ajax

const pdfFile = $("#pdfFile")[0].files[0];
const jsonFile = $("#jsonFile")[0].files[0];

const formData = new FormData();
formData.append("files", pdfFile);
formData.append("files", jsonFile);
formData.append("json", new Blob([JSON.stringify(data)], {type: "application/json"}));

$.ajax({
    url: "등록 컨트롤러 URL",
    method: "post",
    data: formData,
    contentType: false,
    processData: false,
    enctype: "multipart/form-data",
    success: function(result) {
        alert("등록 성공");
        location.reload();
    },
    error: function(xhr) {
        console.log(xhr);
    }
});

 

따로 준비해둔 Data는 위와 같이 만들면 컨트롤러에서 Map<String, Object> 혹은 DTO, VO로 전달받을 수 있다

 

⏹️ Controller

@ResponseBody
@PostMapping("URL")
public void postCreateDoc(@RequestPart Map<String, Object> json, 
            @RequestPart MultipartFile[] files) {
    // 컨트롤러 로직 작성
}

위와 같이 컨트롤러를 작성해주는데 json이나 files 같이 인자의 이름은 Ajax에서 전달하는 formData의 이름과

맞춰야 한다.


지금와서 생각하니 너무 간단하다..

저작자표시 비영리 (새창열림)

'Java > Spring Boot' 카테고리의 다른 글

Bean Validation  (1) 2024.02.26
Thymeleaf 스프링 통합과 폼  (0) 2024.02.15
Spring boot Interceptor Ajax 체크 (Redirect 이슈)  (0) 2023.04.05
Spring boot RestAPI 파일 다운로드  (0) 2023.02.10
Spring boot Controller Zip 압축 해제  (0) 2023.01.25
  1. 🟧 Ajax & Spring boot Controller
'Java/Spring Boot' 카테고리의 다른 글
  • Bean Validation
  • Thymeleaf 스프링 통합과 폼
  • Spring boot Interceptor Ajax 체크 (Redirect 이슈)
  • Spring boot RestAPI 파일 다운로드
요술공주밍키
요술공주밍키
조금씩이라도 꾸준히..
  • 요술공주밍키
    삽질의흔적
    요술공주밍키
  • 전체
    오늘
    어제
    • 분류 전체보기 (130)
      • Java (42)
        • Spring Boot (14)
        • Spring Boot 게시판 (14)
        • 공중화장실 찾기 (4)
        • 쇼핑몰 (8)
      • JavaScript (8)
        • NodeJS (2)
      • Python (5)
        • Django (4)
      • Server (10)
        • Docker (4)
        • K8S (0)
        • Jenkins (1)
      • 알고리즘 (22)
        • 프로그래머스 (17)
        • 백준 (5)
      • Etc (21)
        • 개발 팁 (1)
      • 일상 (21)
        • 독서 포스트 (19)
        • 회고록 (2)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
요술공주밍키
Ajax를 통해 파일과 Json 업로드 후 Controller로 받기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.