Resolved
Written on
·
451
0
제가 앞쪽 validation 하고 연결해서 실습을 해보고 있는데요.
자바스크립트로 img 테그에서 input이 가지고 있는 file의 url 주소를 링크해서 이미지를 보이게 해놨거든요.
그래서 사용자가 input 태그에서 이미지 파일을 선택하면 그 파일이 미리보기로 화면에 나타납니다. 그래서
input에 th:value = *{profileImg} 이렇게 해놓고 서버로 전송하면 파일의 바이러니 정보를 multipart 객체에 받아오긴 하는데요.
form 데이터에 오류가 있을 경우 다시 form.html로 받았던 modelattribute 객체를 전송해주잖아요? 그래야 사용자가 쓰던 form이 그대로 보일거구요.
그런데 th:vlaue = *{profileImg} 여기는 multipart 객체 패키지 정보와 해시코드가 전달됩니다. 당연히 사용자가 업로드해놨던 img 파일은 보이지 않고요.
multipar객체로 받았던 img 파일을 다시 form의 input에 file로 보내고, 이미지가 화면에 보이도록 하는 방법이 있을까요?
Answer 1
3
안녕하세요. 컴퓨터공부하자님
multipart에서 파일 전송의 경우 검증 실패시 다시 화면에 돌아왔을 때 파일 정보까지 모두 가지고 있는 것은 어렵습니다.
대안 방법으로는 AJAX 같은 것으로 파일업로드 시점에 서버에 미리 파일을 업로드 해두고, 해당 파일의 id나 위치 정보만 서버로 업로드 하는 방법이 있습니다.
관련해서 Ajax 파일 업로드로 검색해보시면 도움이 되실거에요.
감사합니다.