파일을 업로드 하기 위해서는
cos.jar 파일이 필요하다. 여기서 http://servlets.com/cos/
"cos-26Dec2008.zip" 파일을 다운로드하고 cos.jar 파일을
톰켓홈.../common/lib (또는 그냥 lib폴더) 폴더와
톰켓홈.../webapps/.../WEB-INF/lib 폴더에 넣는다.
cos.jar파일이 있으면
enctype="multipart/form-data"로 넘어오는 파라미터에 대한 이름과 값을 얻어낼수 있다.
파일 업로드 폼
========= fileUploadForm.jsp =========
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<html>
<head>
<title>파일 업로드 테스트</title>
</head>
<body>
<form method="post" action="fileUploadPro.jsp" enctype="multipart/form-data">
<input type="file" name="uploadFile" size="50" />
<input type="submit" value="전송" />
</form>
</body>
</html>
======================================
업로드 처리파일
========= fileUploadPro.jsp =========<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="com.oreilly.servlet.MultipartRequest" %>
<%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%
request.setCharacterEncoding("euc-kr");
String realFolder = "";
String saveFolder = "fileUpload/saveFile"; // 업로드 폴더지정
String encType = "euc-kr"; // 인코딩 타입
int maxSize = 5*1024*1024; // 최대 업로드될 파일 크기 5MB
ServletContext context = getServletContext();
realFolder = context.getRealPath(saveFolder); // 서버상에 절대경로
out.print("the realpath is : "+realFolder+"<br />");
try{
MultipartRequest multi = null;
// 전송을 담당할 컴포넌트를 생서하고 파일을 전송함
// 전송할 파일명을 가지는 객체,서버상의 절대경로,초대 업로드될 파일크기,문자코드,기본보안적용
multi = new MultipartRequest(request,realFolder,maxSize,encType,new DefaultFileRenamePolicy());
Enumeration params = multi.getParameterNames(); // 폼의 파라미터 목록을 가져온다.
// 파라미터를 출력한다.
while(params.hasMoreElements()){
String name = (String)params.nextElement(); // 전송되는 파라미터 이름
String value = multi.getParameter(name); // 전송되는 파라미터 값
out.print(name+"="+value+"<br />");
}
out.print("-------------------<br />");
Enumeration files = multi.getFileNames(); // 전송할 파일정보
// 파일정보가 있다면 실행
while(files.hasMoreElements()){
String name = (String)files.nextElement(); // input 태그 속성이 file인 name값
String filename = multi.getFilesystemName(name); // 서버에 저장된 파일 이름
String original = multi.getOriginalFileName(name); // 원래 파일 이름
String type = multi.getContentType(name); // 전송된 파일의 내용 타입
File file = multi.getFile(name); // 파일 객체 생성
out.print("파라미터 이름 : "+name+"<br />");
out.print("실제파일 이름 : "+original+"<br />");
out.print("저장된파일 이름 : "+filename+"<br />");
out.print("파일 타입 : "+type+"<br />");
if(file != null){
out.print("크기 : "+file.length());
out.print("<br />");
}
}
}catch(IOException e){
System.out.print(e);
}catch(Exception e){
System.out.print(e);
}
%>
======================================
'프로그래밍 > JSP' 카테고리의 다른 글
톰캣 설치 - 웹 컨테이너 apache-tomcat-6.0.18 (0) | 2012.01.02 |
---|---|
톰캣 한글 처리 설정 (0) | 2012.01.02 |
이클립스 + 톰캣6.0 & 5.5에서 오라클 JNDI Connection Pool 사용설정 (servlet 서블릿 설정) (0) | 2012.01.02 |
JSP Thumbnail 썸네일 소스 (0) | 2012.01.02 |
다중 파일 업로드 소스 (0) | 2012.01.02 |