본문 바로가기
jsp

파일 업로드/ 다운로드

by 신방동불주먹 2022. 12. 5.

<라이브러리 다운로드>

 

 

http://servlets.com/cos/

 

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