ModuERP-E3I3 / moduerp

E3I3 조의 ModuERP 프로젝트 저장소입니다.
0 stars 0 forks source link

근태 문서 첨부파일 #25

Closed silver0-stack closed 21 hours ago

silver0-stack commented 21 hours ago

String attachmentinput type="file" name="attachment" 이어서 400 오류 났었음

input type="file" name="file" 로 바꾸니 해결됐음

오류 원인

DTO 클래스의 attachment 필드가 String 타입이었어. 폼에서 로 설정했더니, Spring이 MultipartFile 데이터를 String으로 바인딩하려고 해서 400 에러 발생했어.

해결 방법

폼 입력 필드 이름 변경: 로 바꿨어. 컨트롤러 수정: 컨트롤러에서 @RequestParam("file") MultipartFile file로 파일을 별도로 처리했어. DTO 클래스 수정 (선택 사항): 파일 정보를 저장하려면 attachment 필드를 MultipartFile로 변경하거나 별도의 String 필드를 추가해서 파일 경로나 이름을 저장했어.

결과

400 Bad Request 오류 해결: 폼의 파일 입력 이름을 변경함으로써 Spring이 데이터를 올바르게 바인딩할 수 있게 되었고, 에러가 사라졌어. 파일 업로드 정상 동작: 파일을 성공적으로 업로드하고 처리할 수 있게 됐어.

추가 정리

폼 필드와 DTO 필드 일치 중요: 폼의 name 속성과 DTO 클래스의 필드 타입이 일치해야 데이터 바인딩 오류를 피할 수 있어. 네이밍 일관성: 네이밍 일관성으로 데이터 바인딩 오류 예방 가능해. 테스트 및 검증: 변경 후 파일 업로드 기능이 정상적으로 동작하는지 확인했어.