파일업로드는 Post방식으로만 가능하다
Get 방식 불가능
Http 요청 메시지
header : get방식: http://localhost:8080/chap13/index.jsp?파일주소 << 정말 파일의 위치주소만 전송된다.
body
form enctype="multipart/form-data" 명시를 해야 파일데이터라고 인식을함.
input type="file"
파일을 첨부해서 보낸경우 request.getParameter(무력화당함..) 로 추출을못함. => 통체로 MultipartRequest 에 넘겸줌
Get 방식 불가능
Http 요청 메시지
header : get방식: http://localhost:8080/chap13/index.jsp?파일주소 << 정말 파일의 위치주소만 전송된다.
body
form enctype="multipart/form-data" 명시를 해야 파일데이터라고 인식을함.
input type="file"
파일을 첨부해서 보낸경우 request.getParameter(무력화당함..) 로 추출을못함. => 통체로 MultipartRequest 에 넘겸줌
WEB-INF/lib/cos.jar
cos라이브러리는 동시에 여러 파일을 올리수있다.
maxSize : 모든파일의 합의 제한용량
cos라이브러리는 동시에 여러 파일을 올리수있다.
maxSize : 모든파일의 합의 제한용량
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>파일 업로드 예제</title> </head> <body> <!-- method="post" : get방식은 파일업로드 못함 enctype="multipart/form-data" : 파일업로드시 반드시 명시 type="file" : 선택파일을 매치시켜 파일을 업로드 --> <form name="fimeForm" method="post" enctype="multipart/form-data" action="fileUpload.jsp"> 작성자: <input type="text" name="user"><br/> 제목:<input type="text" name="title"><br/> 파일명:<input type="file" name="uploadFile"><br/> 파일명2:<input type="file" name="uploadFile2"><br/> <input type="submit" value="파일 올리기"><br/> </form> </body> </html>WEB-INF/fileUpload.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!-- MultipartRequest : DefaultFileRenamePolicy : 기존에 업로드 파일중 이름이 똑같은것이 있는경우 업로드시 이름을 변경해주는것 ex)a.jsp,a1.jsp --> <%@ page import="com.oreilly.servlet.MultipartRequest"%> <%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%> <%@ page import="java.util.*"%> <%@ page import="java.io.*"%> <% String realFolder = ""; //웹 어플레케이션상의 절대경로 //파일이 업로드되는 폴더를 지정한다 String saveFolder = "upload"; String encType = "utf-8";///엔코딩타입 int maxSize = 5 * 1024 * 1024;//최대 업로드될 파일크기 5mb ServletContext context = getServletContext(); //현재 jsp 페이지의 웹어플리케이션상의 절대 경로를 구한다. realFolder = context.getRealPath(saveFolder); out.println("the realpath is: " + realFolder + "<br/>"); try { MultipartRequest multi = null; //전송을 담당할 콘포넌트를 생성하고 파일을 전송한다. //전송할 파일명을 가지고 있는 객체, 서버상의 절대경로, 최대 업로드될 파일크기 /* MultipartRequest( request, : 요청request를 통채로 넘겨줌 realFolder, : 웹어플리케이션상의 절대경로 maxSize, : 최대용량 encType, : 파일타입 new DefaultFileRenamePolicy() :같은파일명이있는경우 이름변경 */ multi = new MultipartRequest(request, realFolder, maxSize, encType, new DefaultFileRenamePolicy()); //Form의 파라미터 목록을 가져온다. //getParameterNames: 파일과 관련없는 일반정보인 경우 추출방법 //Enumeration : java.util : 데이터를 여러개 보관할수 있는객체 Enumeration params = multi.getParameterNames(); //파라미터를 출력한다. while (params.hasMoreElements()) { //전송되는 파라미터이름 String name = (String) params.nextElement(); //전송되는 파라미터값 String value = multi.getParameter(name); out.println(name + "=" + value + "<br>"); } out.println("----------------------------------------------<br/>"); //전송할 파일 정보를 가져와 출력한다. //getFileNames : 파일과 관련있는 정보인 경우의 추출방법 Enumeration files = multi.getFileNames(); //파일 정보가 있다면 while (files.hasMoreElements()) { //input태그 속성이 file 인 태그의 name속성값 : 파라미터 이름 String name = (String) files.nextElement(); //서버에 저장된 파일 이름 String filename = multi.getFilesystemName(name); //전송전 원래의 파일이름 String original = multi.getOriginalFileName(name); //전송된 파일의 내용타입 String type = multi.getContentType(name); //전송된 파일 속성이 file인 태그의 name 속성값을 이용해 파일 객체 생성 //용량을 알아내기 위해서 : file.length(); File file = multi.getFile(name); out.println("파라미터 이름 : " + name + "<br/>"); out.println("실제 파일 이름 : " + original + "<br/>"); out.println("저장된 파일 이름 : " + filename + "<br/>"); out.println("파일 타입 : " + type + "<br/>"); if (file != null) { out.println("크기 : " + file.length()); out.println("<br/>"); } } } catch (IOException ioe) { System.out.println(ioe); } catch (Exception ex) { System.out.println(ex); } %>
다중업로드
'JSP > 기본(Oracle)' 카테고리의 다른 글
EL(표현언어), JSTL, 국제화 태그 - 예제 (0) | 2012.06.20 |
---|---|
EL(표현언어), JSTL, 국제화 태그 (0) | 2012.06.20 |
JSP 방명록 (0) | 2012.06.20 |
모델1방식 :DB 연동 회원가입, 로그인,로그아웃 , 회원탈퇴(삭제) (1) | 2012.06.20 |
커넥션 풀 (Connection Pool : 저장소역활) (0) | 2012.06.20 |