사진을 서버에 전송하는 프로그램을 개발하는 도중 아래와 같은 에러가 발생하였다.
에러 로그
WARN 7268 --- [nio-8080-exec-3] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present]
Ajax 펑션
function uploadPhoto() {
var file = $('input[name="file"]').get(0);
var formData = new FormData();
formData.append('file', file);
$.ajax({
type: 'POST',
url: './profile/update',
data: formData,
enctype: 'multipart/form-data',
processData: false,
contentType: false,
cache: false,
error : function(error) {
alert("Error!");
},
success : function(data) {
if(data.status == 'success') {
alert('success');
}
}
});
}
Controller
public @ResponseBody Map<String, Object> insert(@RequestPart("file") MultipartFile file) {
}
에러 원인은, file 객체값이 맞지 않는 것으로 MultipartFile 형태의 값이 아니라서 나는 에러로 유추하고 있음.
해결방법
Ajax 부분을 아래와 같이 수정
// 이 부분을
var file = $('input[name="file"]').get(0);
// 이렇게 수정
var file = $('input[name="file"]').get(0).files[0];
반응형
'Stackoverflow > Java' 카테고리의 다른 글
EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 (0) | 2022.04.29 |
---|---|
[Spring boot] com.mysql.jdbc.Connection.isValid(I)Z at (0) | 2022.04.28 |
[Java] Unable to access jarfile (0) | 2022.04.19 |
[Java] java.lang.UnsupportedOperationException 에러 처리 (0) | 2022.01.06 |
[Springboot] web server Port 8080 was already in use. (0) | 2021.07.16 |