아무리 해도 모르겠네
프론트에서 값 3개를 백엔드에 보내려고 하거든
가격
수량
이미지
그런데 이게 계속
message: "Content type 'multipart/form-data;
이 에러가 뜨네
아래는 코드야
자바 스프링
여기서 매개변수 write 없애고 images 만 남기고 프론트에서 이미지만 보내면 정상적으로 보내지는데 imgaes, write 두개 보내면 계속 에러 뜸
리액트
저거 헤더 컨텐츠 타입 멀티파트로 해도 에러 뜨고
폼 데이터 write 를 오브젝트로 받아도 에러 뜨고
아무리 구글링 해봐도 어케 해야할지 모르겠네, 왜 그런거야 ㅠㅠ
requestpart랑 requestbody는 같이 못쓸걸 아마
requestpart 만 넣으면 메세지는 안 뜨는데 image, write 값들이 세팅이 안 돼 있어 ㅠㅠ 이게 메세지가 안 뜨면 값이 없고,,,이 부분이 시간을 너무 잡아먹네 ㅠㅠ
고마워 이걸로 해결은 안 됐는데 어쨋든 이것때문에 다른 곳에 문제가 있는 걸 찾았네 ㅠㅠ 이제 이미지는 넣어지는데 다른 데이터가 세팅이 안되네
ReqBody 대신 ModelAttribute 으로 선언하고 안에 dto 객체에 multipart 멤버 넣고 돌려보셈 나도 이거 한지는 좀 돼서 가물가물한데 확인하고 댓글졈
이렇게 하니까 지금 이미지에는 정상적으로 데이터가 들어가는데 다른 부분에는 값이 안 들어가네
files.images.map((file: any) => formData.append('images', file)); const write = { title: 'adsfsd', }; formData.append('write', write as any); debugger; const res = await client.post('/write', formData);
뭔가 프론트에 문제가 있는 것 같아서 확인 중...
@PostMapping(value = "/write", consumes = "multipart/form-data") public String write(@ModelAttribute WriteDto write) throws IOException { String a = reFile(write.getImages()); return a; }@Getter@Datapublic class WriteDto { private String title; private List images;}
아 됐따, 고마워 고마워 폼 데이터 쪽도 문제였네 내가 이쪽 개념이 없네 진짜 ㅠㅠ 백엔드는 ㅁㅁ 너 말대로 해서 해결했어 고마워
formData.append('write', write as any); -> formData.append('title', '제목'); 이렇게 변경, dto 멤버변수 이름과 일치해야 함