JSP정리 - 8일차

이원섭·2020년 2월 12일
0

JSP 공부

목록 보기
8/11
post-thumbnail

16. 파일 업로드

16-1. 설치

http://www.servlets.com 접속 -> com.oreilly.servlet 클릭해서 설치
-> cos.jar 파일을 WEB-INF>lib에 복사


16-2. 파일 업로드 프로그래밍

fileForm.jsp(파일 업로드 폼)

<body>

	<form action="fileFormOk.jsp" method="post" enctype="multipart/form-data"> //파일이 실제로 잘 첨부가 되게하려면 enctype을 선언해줘야함.
		파일 : <input type="file" name="file"><br />
		<input type="submit" value="File Upload">
	</form>

</body>

fileFormOk.jsp(실제 파일 업로드를 위한 jsp)

<%@page import="java.util.Enumeration"%>
<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
	String path = request.getRealPath("fileFolder"); //실제로 저장되는 파일들의 폴더이름

	int size = 1024 * 1024 * 10; //10M 
	String file = ""; //파일 이름
	String oriFile = ""; //오리지날 파일, 업로드 할때 같은 이름이 있을 경우 덮어씌워지는 상황을 방지
	
	try{ //실제로 업로드하는 과정
		MultipartRequest multi = new MultipartRequest(request, path, size, "EUC-KR", new DefaultFileRenamePolicy());  //요청, 경로, 파일크기, 인코딩, 동일파일이 있을 때 파일뒤에 인덱스 번호를 매겨줌
		
		Enumeration files = multi.getFileNames(); //파일명을 여러개 받아서
		String str = (String)files.nextElement(); // 파일명들을 str에 저장
		
		file = multi.getFilesystemName(str); //파일 이름 구하기
		oriFile = multi.getOriginalFileName(str); //실제 파일 이름 구하기
		
	} catch (Exception e) {
		e.printStackTrace();
	}
%>

업로드된 파일은 이클립스 내 폴더 경로가 아닌 톰캣 서버 폴더에 생성된다.

profile
개발 공부 가즈아-!

0개의 댓글