http://commons.apache.org/lang/download_lang.cgi




여기서 commons-lang3-3.1-bin.zip다운 받자

Commons Lang 3.1 (Java 5.0+)


압축을 푼후 라이브러리 폴더에 요걸 추가하자~~

commons-lang3-3.1.jar







fileupload_form.jsp
<%@ page contentType="text/html; charset=euc-kr" %>
<html>
<head><title>multipart 폼</title></head>
<body>
<form action="fileupload.jsp" method="post" enctype="multipart/form-data">
text1: <input type="text" name="text1" /> <br/>
file1: <input type="file" name="file1" /> <br/>
file2: <input type="file" name="file2" /> <br/>
<input type="submit" value="전송" />
</form>
	1. *. jsp 2. *.java 3.web.xml 4./folder/*.jsp
	classes폴더는 복사하지 마세요

</body>
</html>


fileupload.jsp
<%@ page contentType="text/html; charset=euc-kr" %>
<%@ page import="java.util.Iterator"%>
<%@ page import="java.util.List"%>
<%@ page import="org.apache.commons.fileupload.FileItem"%>
<%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@ page import="java.io.*"%>
<html>
<head><title>업로드 정보</title></head>
<body>
<%
	// 1. multipart/form-data 여부 확인
	boolean isMultipart = ServletFileUpload.isMultipartContent(request);
	if (isMultipart) {
		// 2. 메모리나 파일로 업로드 데이터를 보관하는 FileItem의 Factory 설정
		DiskFileItemFactory factory = new DiskFileItemFactory();

		// 3. 업로드 요청을 처리하는 ServletFileUpload 생성
		ServletFileUpload upload = new ServletFileUpload(factory);
		
		// 4. 업로드 요청 파싱해서 FileItem 목록 구함
		List<FileItem> items = upload.parseRequest(request);//텍스트 1개/파일2개
		
		Iterator<FileItem> iter = items.iterator();
		while (iter.hasNext()) {
			FileItem item = iter.next();
			// 5. FileItem이 폼 입력 항목인지 여부에 따라 알맞은 처리
			if (item.isFormField()) {//파일이 아니다, text일 경우
				String name = item.getFieldName();//text1이다.<input type="text" name="text">
				String value = item.getString("euc-kr");//그 필드에 사용자가 입력한 문자
%>
요청 파라미터: <%= name %>=<%= value %> <br/>
<%
			} else {//request에 bind된 데이터를 열거해서 하나씩 체크했는데 파일일 경우
				String name = item.getFieldName();//name="file1"/>
				String fileName = item.getName();//내가 업로드한 파일의 이름
				String contentType = item.getContentType();//업로드 타입
				boolean isInMemory = item.isInMemory();//메모리에 있는가?
				//파일의 용량이 클 경우에는 파일을 메모리가 아니라 임시폴더에 저장합니다.
				
				long sizeInBytes = item.getSize();//파일의 사이즈
				
			if(sizeInBytes>10){//파일을 올렸으면 
				/* item이 파일이므로 자바의 파일입출력 기능으로 원하는 폴더에 저장하자 */
				FileOutputStream fos=null;// 파일로 데이터를 보낼 Stream 선언
				InputStream is=null;//item으로 부터 데이터를 읽을 Stream 선언
				
				try{
					File file= new File("c:/"+fileName);//windows 운영체제에서만 됩니다.
					fos=new FileOutputStream(file);//file로 데이터를 보낼 Stream 초기화
					is= item.getInputStream();//item을 읽어들일 Stream 최기화
					byte[] buff=new byte[256];//256byte 씩 읽어들일 변수 선언
					int len= -1;
					while( (len=is.read(buff)) != -1){//더이상 읽을 것이 없을때 -1을 리턴하므로
						//100개 읽을때도 있고 200개의 바이트를 읽을 때도 있을 것이다.
						fos.write(buff, 0, len);//읽자마자 파일로 보낸다 단위는 :0번째 부터len번째 까지
						
					}
					
				}catch(Exception e){
					out.print("파일을 저장중에  예외발생"+e.getMessage());
				}finally{
					try{
						if(fos!=null){
							fos.close();//닫아 주지 않으면 파일을 변경할 수 없다.
						}
						if(is!=null) {
							is.close(); 
						}
				
					}catch(Exception e){
					}
				}
			}// if 파일네임!=null
%>
파일 : <%= name %>, <%= fileName %>, <%= sizeInBytes %>
<%= isInMemory ? "메모리저장" : "임시파일저장" %>
 <br/>
<%
			}
		}
	} else {
		// multipart/form 아님
%>
multipart/form 요청이 아님.
<%
	}
%>
</body>
</html>






테이블 생성을 해주자~




기타 세팅 파일


08.File.zip



08.File/pds/upload.jsp ------> c:\\pds 폴더를 만들어줘야 한다.

08.File/WEB-INF/src/pds.jocl --------->자신의 테이블 명과 호스트 이름 비번을 적어주자~


'JSP > 2012.04강의(MySQL)' 카테고리의 다른 글

7일차 filter,로그인  (0) 2012.05.30
7일차 Tiles  (0) 2012.05.30
6일차 답변형 게시판  (0) 2012.05.30
5일차 JSTL jsp Standard Tag Library 2  (0) 2012.05.29
5일차 JSTL jsp Standard Tag Library  (0) 2012.05.29

+ Recent posts