⇒ 앞 프로젝트 폴더의 코드와 거의 똑같음 url만 member.do
→ board.do
바꾸는 것만 조심하기
⇒ 생략한 내용들
: board.js(idCheck(), idok(id)) / IdCheckAction / JoinAction
이 프로젝트 폴더는 여기서 마무리...
파일이 업로드 될 타겟 폴더를 지정, String으로 저장해둔다.
String savePath = "upload";
그리고 webapp에 같은이름으로("upload") 폴더를 하나 만든다.
업로드될 파일의 용량을 제한하기 위한 용량값을 int 변수에 저장해둔다.
int uploadFileSizeLimit = 5*1024*1024;
[ 참고 사항 ]
- 1바이트 기준 1020byte = 1Kbyte
- 1024Kbyte = 1MB
- 1024Mbyte = 1GB
- 1024Gbyte = 1TB
- 1024Tbyte = 1PB
인코딩 방식을 String 변수에 저장해둔다.
String encType = "UTF-8";
업로드될 서버의 실제 저장장소를 설정하고 그 안에 "upload"폴더를 만들어 최종 경로를 String 변수(uploadFilePath)에 저장해둔다.
ServletContext context = getServletContext();
String uploadFilePath = context.getRealPath(savePath);
MultipartRequest 객체를 만들고 매개변수를 전달한다.
매개변수들 = jsp에서 전달한 request + 위에서 만든 변수들
request
uploadFilePath : 서버상의 실제 저장 장소
uploadFileSizeLimit : 최대업로드 용량 제한
encType : 한글 인코딩 방식
new DefaultFileRenamePolicy()
: 저장 장소에 업로드 되는 파일이름 중복시 문제 해결하는 객체
MultipartRequest 객체가 생성되는 순간 업로드 되는 파일을 해당 경로에 업로드를 완료
System.out.println("uploadFilePath: " + uploadFilePath);
: 업로드된 파일들이 실제로 저장되는 폴더의 경로를 출력해볼 수 있다.
폼 안에 있던 <input type="file">
의 파일들은 MultipartRequest 생성시 한 번에 업로드 된다.
한 번에 전달된 "파일이름들"은 Enumeration을 사용하여 전달 받고, 하나씩 꺼내서 사용한다.
Enumeration files = multi.getFileNames();
파일 이름들("uploadFile01", "uploadFile02", "uploadFile03")을 Enumeration에 저장
while(files.hasMoreElements())
: 파일 요소의 개수만큼 반복실행
String file = (String)files.nextElement();
: 하나씩 파일요소 추출
업로드된 파일이름 추출(업로드 전)
String file_name = multi.getFilesystemName(file);
업로드 후, DefaultFileRenamePolicy에 의해 구분된 실제 파일 이름 추출
: String ori_file_name = multi.getOriginalFileName(file);
02_result.jsp에서 업로드 전의 파일이름과 업로드 하면서 DefaultFileRenamePolicy에 의해서 바뀐 파일이름을 비교해보기
위해서 변수를 생성하였다.
package com.ezen.product.Dao
product insert는 주말 숙제