카테고리 없음
파일업로드
이건탁
2021. 1. 19. 12:59
728x90
![]() |
파일 업로드를 하기위해선 메소드와 entype이 필요하다 |
![]() |
|
![]() ![]() |
pom.xml에 추가 |
![]() |
이건 1.4버전 mvn에서 가져오는건 spring 한글 파일 제일 아래에 나와있다. |
![]() |
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.8.0</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.4</version> </dependency> |
![]() |
파일 업로드 할려면 디펜던시 2개 외에 리졸버를 하나더 추가해야 한다. |
![]() |
InternalResourceViewResolver, (컨트롤러에서 responsbody가 없는게 InternalResourceViewResolver한테 간다) BeanNameViewResolver, (컨트롤러에서 responsbody가 있는건 InternalResourceViewResolver한테 안가고 BeanNameViewResolver 한테 찾아가서 같은 이름을 찾고 제이슨으로 바꿔준다.) MappingJackson2JsonView 의 차이 한번더 보기 CommonsMultipartResolver (파일을 업로드 할때는 CommonsMultipartResolver가 필요하다) 사이즈가 얼마나 들어가는지 알려줘야 한다 value="5000000"는 대략 5MB |
jsp랑 js는 보고 | |
![]() |
submit으로 보낼려면 form태그에 method랑 entype이 있어야 한다. 그리고 name속성을 가지고 보내진다 |
![]() |
가상 폴더를 만들어준다 |
![]() ![]() |
이름을 바꿔준다 |
![]() |
|
![]() |
Form에서 보낸 파일이 들어가지 못하게 Form과 DTO이름을 다르게 한다. 그럼 img만 빼고 DTO에 저장되게된다 현재 업로드를 하면 실제 폴더에 (16진수이름.tmp) 라는 임시파일로 올라간다. 그럼 16진술된 이름을 바꾸고 가상폴더인 storage로 복사해줘야 한다., |
![]() |
이걸 해주면 16진수로 된 파일이름이 원래 이름으로 바뀐다 - |
![]() ![]() |
왼쪽껄 읽어다가 오른쪽에 복사해라. |
![]() |
이 작업을 거치면 가상폴더인 storage에 들어가게 된다 |
![]() |
그리고 아까 이름을 다르게 저장해서 저장안된 이름을 넣어주면 된다 (아까 이름을 안바꿔줬으면 DTO에 16진수로 이름이 들어가기 때문에 이름만 따로 작업해서 보내준다) |
아직 DB에 연결은 안했지만 페이지를 실행하면 가상저장소인 stroage에는 파일이 저장된다 |
|
![]() ![]() |
파일이 들어갈거니까 사진처럼 쓴다 |
![]() |
form태그에 파일타입이 있어서 serialize가 안먹힌다 |
![]() |
forms = 여러개의 form을 관리하는 메소드 |
![]() |
그래서 formData를 사용해 forms를 써서? 가지고 있는걸 [0]번째 방에 넣고 그걸 let에 담아서 data로 보내준다, formData는 브라우저가 제공하는 메소드? |
![]()
|
이것도 해주고 |
![]() |
끝.... |
파일을2개 이상 넣을때 | |
![]() |
|
![]() |
|
![]() |
|
파일을 드래그해서 한번에 올리게 하기 | |
![]() |
|
![]() |
배열로 받으니까 파라미터는 리스트로 받는다 |
![]() |
![]() |
자식 앞에 들어가는거 appendTo 자식 뒤에 들어가는가 |
![]() |
|
![]() |
![]() ![]() |
컴포넌트잡고 |
![]() ![]() |
전체글 잡아오고 |
![]() |
|
![]() |
|
![]()
|
|
![]() |
|
![]() |
선택삭제
![]() |
|
![]() |
|
.attr( ) .prop( ) 제이쿼리에서 attr은 안먹혀서 prop를 써야 한다 attr() - HTML에 작성된 속성값을 문자열로 받아온다 prop() - 자바스크립트의 프로퍼티를 가져온다 - 자바스크립트의 프로터티값이 넘어오므로 boolea, date, function등을 가져올수 있다. (미니프로젝트의 exam04에 실습) |
|
![]() |
|
![]() |
|
![]() ![]() ![]() ![]() |
![]() ![]() |
attr은 a 태그의 'href'가 가지고 있는 문자를 가지고 와라 문자열로 가져온다 |
![]() ![]() |
prop는 a태그의 'href'가 가지고 있는 값을 가지고 와라 자바스크립트 형태로 가져오고 |
![]() ![]() |
attr속성의 값을 꺼내오라고 했는데 |
![]() |
안잡아놔서 안나온다 문자열로 가져온다 |
![]()
|
체크드 되어있는 자바스크립트의 속성값을 가져와라 |
![]() |
속성값을 가져온다 자바스크립트 형태로 가져오고 |
![]() |
원래 컨트롤러에서 요청하면 view를 거쳐서 부르는건데 redirect를 사용하면 view를 안거치고 바로 디스패처로 보내버린다 |
![]() |
|
728x90