N스크린하이브리드앱과정/JSP:Model-1

[4주][5일][5~8th] JSP: 파일 업로드

광천스러움 2013. 8. 9. 15:56

★ 용어 정리

 - request.getRealPath() : 웹 경로를 실제 서버의 디렉토리 경로로 지정해준다

                                   (파일이 다운로드될 공간).

 

* MultipartRequest 클래스 -> 인자 5개

 - 예 : new MultipartRequest(request,uploadPath,maxSize,"utf-8",new DefaultFileRenamePolicy());

1. request :

2. uploadPath : 업로드 될 파일의 위치를 의미 

3. maxSize : 한번에 업로드 할 크기

4. "utf-8" : 한글도 문제없이 처리하게끔 처리

5. new DefaultFileRenamePolicy() : 똑같은 파일을 업로드 할 경우 자동으로 파일 이름을 변환해주

                                                는 기능

 

* 메서드

getParameter : Request 객체에 있는 해당 파라미터의 값을 가져옴

getOriginalFileName : 클라이언트가 업로드 한 파일의 이름

getFilesystemName : 서버에 실제로 업로드 된 파일 이름

getContentType : 파일 타입을 알려줌

 

 

☆ 실습(1) : 파일 업로드하기

 - 2개의 파일 필요 : "uploadForm.jsp", "uploadPro.jsp"

 (1) "uploadForm.jsp"

<h1>파일업로드폼</h1>
<form action="uploadPro.jsp" method="post" enctype="multipart/form-data">
올린사람: <input type="text" name="name"><br>
제목: <input type="text" name="subject"><br>
파일명: <input type="file" name="file"><br>
<input type="submit" value="전송">
</form>

 

 (2) "uploadPro.jsp"

<%
String uploadPath = request.getRealPath("upload");
int maxSize = 5*1024*1024;
MultipartRequest multi = new MultipartRequest(request,uploadPath,maxSize,"utf-8",new DefaultFileRenamePolicy());
%>
올린사람: <%=multi.getParameter("name") %><br>
제목: <%=multi.getParameter("subject") %><br>
파일경로: <%=uploadPath %><br>
원파일이름: <%=multi.getOriginalFileName("file") %><br>
시스템에 올린 파일이름: <%=multi.getFilesystemName("file") %><br>
파일타입: <%=multi.getContentType("file") %><br>
<a href="../upload/<%=multi.getFilesystemName("file") %>">올린파일하이퍼링크</a>

 

결과

 

 

하이퍼링크를 눌렀을 때

 

☆ 실습(2) : 파일 업로드 실습

 - 파일 2개 필요 : "uploadForm2.jsp", "uploadPro2.jsp"

(1) "uploadForm.jsp"

<h1>파일 업로드 ^___^</h1>
<form action="uploadPro2.jsp" method="post" enctype="multipart/form-data">
올린사람: <input type="text" name="name"><br>
제목: <input type="text" name="subject"><br>
파일명1: <input type="file" name="file1"><br>
파일명2: <input type="file" name="file2"><br>
<input type="submit" value="전송">
</form>

 

(2) "uploadPro.jsp"

<%
 String uploadPath = request.getRealPath("upload");
 int size = 10*1024*1024;
 MultipartRequest multi = new MultipartRequest(request,uploadPath,size,"utf-8",new DefaultFileRenamePolicy());
%>
올린사람: <%=multi.getParameter("name") %><br>
제목: <%=multi.getParameter("subject") %><br>
파일명1: <a href="../upload/<%=multi.getFilesystemName("file1") %>">파일명1: <%=multi.getFilesystemName("file1") %></a><br>
파일명2: <a href="../upload/<%=multi.getFilesystemName("file2") %>">파일명2: <%=multi.getFilesystemName("file2") %></a>

 

결과