<파일 업로드>
[form method = "post" enctype = "multipart/form-data"]
*enctype(인코딩 타입): [input type = "file"]을 사용한 경우 반드시 필요한 속성
--- 전송 --->
request.getParameter 사용X ===> 업로드 컴포넌트를 사용해 인자를 받는다.
ex. jspmart.jar cos.jar part클래스로 직접 받기
: request영역이 아닌 temp 임시저장소에 저장
--- 이동, 복사 --->
/upload 자료실 위치
*cos.jar파일의 com\oreilly\servlet 폴더의 MultipartRequest 클래스 생성자
-> public MultipartRequest(request 인자, 저장할 디렉토리 위치, 파일크기 제한, 인코딩 타입, 중복파일 자동 이름 변경)
<cos. jar 다운로드>
www.servlets.com 홈페이지에 접속한다.
zip 파일 다운로드
압축 해제 뒤 lib폴더를 클릭
cos.jar을 복사한다.
기본 위치 WebContent - Web-Inf - lib에 붙여넣기
<예제>
-폴더 생성
WebContent 폴더 밑에 업로드할 폴더를 생성한다.
Properties에서 경로 확인
Path가 아닌 Location을 사용한다.
-코드 구현
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<body>
user<br/>
<input name = "user"><br/>
title<br/>
<input name = "title"><br/>
file<br/>
<input type = "file" name = "uploadFile"><br/>
<input type = "submit" value = "UPLOAD"><br/>
</form>
</body>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
파일 업로드 페이지
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
<%@ page import = "com.oreilly.servlet.MultipartRequest" %>
<%@ page import = "com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %>
<%
String saveFolder = "C:/java_project/mywork_jsp/chapter13/WebContent/upload";
String encType = "UTF-8";
int maxSize = 5 * 1024 * 1024;
try {
MultipartRequest multi = null;
multi = new MultipartRequest(request, saveFolder, maxSize,
encType, new DefaultFileRenamePolicy());
Enumeration params = multi.getParameterNames();
while(params.hasMoreElements()) {
String name = (String)params.nextElement();
String value = multi.getParameter(name);
out.println(name + " = " + value + "<br/>");
}
Enumeration files = multi.getFileNames();
while(files.hasMoreElements()) {
String name = (String)files.nextElement();
String filename = multi.getFilesystemName(name);
String original = multi.getOriginalFileName(name);
String type = multi.getContentType(name);
File f = multi.getFile(name);
out.println("파라미터 이름: " + name + "<br/>");
out.println("실제 파일 이름: " + original + "<br/>");
out.println("저장된 파일 이름: " + filename + "<br/>");
out.println("파일 타입: " + type + "<br/>");
if(f != null) {
out.println("크기: " + f.length() + "바이트");
out.println("<br/>");
}
}
} catch(IOException ioe) {
System.out.println(ioe);
} catch(Exception ex) {
System.out.println(ex);
}
%>
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
업로드 및 확인
: 업로드는 MultipartRequest 생성자를 생성한 순간 이미 끝났지만, 아래에 loop를 돌려 확인하는 절차를 만들었다.
-실행
파일 업로드 페이지
업로드 정보 출력
'20.03 ~ 20.08 국비교육 > JSP' 카테고리의 다른 글
MVC 모델2 - 2. 작동 원리, 매핑(Mapping) (0) | 2020.06.03 |
---|---|
MVC 모델2 - 1. Server Pool 생성 (0) | 2020.06.02 |
세션 사용 로그인 예제 (0) | 2020.05.06 |
쿠키 사용 로그인 예제 (0) | 2020.04.29 |
세션(Session)과 쿠키(Cookie) (0) | 2020.04.29 |