반응형
<라이브러리 다운로드>
Servlets.com | com.oreilly.servlet
servlets.com
다운로드
webcontent / web-inf/lib 폴더에 드래그앤드롭
<파일업로드>
- 실제 파일은 별도의 파일 서버의 디렉토리에 저장하고 데이터베이스에는 실제 파일을 저장하는 것이 아닌 파일이름 및 관련정보들만 저장한다.
1. 폼작성
2. 데이터베이스 테이블 준비
3. dto ,dao 작성
4. 모두 연동
<작성 폼>
- method속성은 반드시 post
- enctyep 반드시 multipart/form-data
- input type="file"
<form method="post" enctype="multipart/form-data>" action="업로드 처리 파일 경로">
<input type="file" name="input 이름" />
</form>
<form name="fileForm" method="post" enctype="multipart/form-data"
action ="UploadProcess.jsp" onsubmit="return validationForm(this)";>
첨부파일 : <input type="file" name="attachedFile" /><br />
<input type="submit" value="전송하기" />
</form>
<파일 업로드 및 폼값 처리>
enctype 을 multipart/form-data로 지정한 경우 getParameter()메소드로 값을 가져올 수 없음
cos.jar 에 포함되어있는 MultipartRequest라는 클래스 사용
- 네가지 값을 받는 생성자 사용 (정해져있는 매개변수)
public MultipartRequest(HttpServletRequest request, String saveDirectory, int maxPostSize, Stirng encoding)
- request: request 내장객체
- saveDriectory : 파일이 저장될 물리적 경로
- maxPostSize : 업로드할 파일의 최대 용량
- encoding : 인코딩 방식
- 객체 생성과 동시에 파일이 업로드
<파일 업로드 처리 JSP>
1. MultipartRequest 객체 생성
MultipartRequest mr = new MultipartRequest(request, saveDirectory, maxPostSize, encoding);
2. 새로운 파일명생성("업로드일시.확장자")
String fileName = mr.getFilesystemName("attachedFile"); //현재 파일 이름
String ext = fileName.substring(fileName.lastIndexOf(".")); //확장자 추출
String now = new SimpleDateFormat("yyyMMdd_HmsS").format(new Date());
String newFileName = now + ext; //새로운 파일 이름
3. 파일명 변경
File oldFile = new File(saveDirectory + File.separator + fileName);
File newFile = new File(saveDirectory + File.separator + newFileName);
oldFile.renameTo(newFile);
4. 다른 폼값 처리
String name = mr.getParameter("name");
String title = mr.getParameter("title");
String[] cateArray = mr.getParameterValues("cate");
//카테고리를 하나의 문자열로 만들기 위해ㅐ?
StringBuffer cateBuf = new StringBuffer();
if(cateArray == null){
cateBuf.append("선택없음");
}else{
for(String s:cateArray){
cateBuf.append(s+",");
}
}
5. DTO생성
6.DAO를 통해 DB에 반영
7. 파일 목록 jsp로 리다이렉션
반응형
'jsp' 카테고리의 다른 글
서블릿(servlet) (0) | 2022.12.06 |
---|---|
파일저장 (0) | 2022.12.05 |
jsp_model1 게시판 (0) | 2022.12.03 |
JSTL(JSP Standard Tag Library) (0) | 2022.12.02 |
표현언어(EL:Express Language) (0) | 2022.12.02 |