Java Category/JSP

[JSP] 파일 업로드

ReBugs 2023. 12. 25.

cos.jar
0.05MB

위 파일을 프로젝트 bin 폴더에 추가한다.

 

FileUp.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<center>
	<h2> 파일 업로드 </h2>
	<form action= "FileUploadProc.jsp" method="post" enctype = "multipart/form-data">
		<table width = "350" border="1" bordercolor="gray">
			<tr height="40">
				<td width="150">이름</td>
				<td width="200"><input type="text" name="name"></td>
			</tr>
	
			<tr height="40"> 
				<td width="150">파일 선택</td>
				<td width="200"><input type="file" name="filedate"></td>
			</tr>
	
			<tr height="40">
				<td align="center" colspan="2"><input type="submit" value="파일 업로드"></td>
			</tr>	
	
		</table>
	</form>
	</center>

</body>
</html>

파일 업로드는 form태그에 <input type="file">을 통해서 하게 된다.

하지만 별다른 처리를 하지 않으면 실제로 넘어오는건 업로드한 파일이름만 넘어오고, 파일자체는 넘어오지 않는다.

먼저 파일업로드를 받기 위해서는 enctype="multipart/form-data" 속성을 추가해줘야 한다.

 

 

FileUploadProc.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import = "com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %>
<%@ page import = "com.oreilly.servlet.MultipartRequest" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% 
		request.setCharacterEncoding("UTF-8");
		//프로젝트내에 만들어질 폴더를 저장할 이름 변수 선언 
		String realfolder=""; 
		//실제로 만들어질 폴더명을 설정 
		String savefolder = "/upload"; 
		//한글 설정
		String encType = "UTF-8"; 
		//저장할때 사이즈를 설정
		int maxSize = 5*1024*1024;//5mb
		
		//파일이 저장될 경로 값을 읽어 오는 객체 
		ServletContext context = getServletContext();
		realfolder = context.getRealPath(savefolder);
		System.out.println(realfolder);
		
		try{ 
		//클라이언트로 부터 넘어온 데이터를 저장해주는 객체 
		//DefaultFileRenamePolicy() -> 동일한 이름이 있을경우 파일 이름을 자동 변경
		MultipartRequest multi = new MultipartRequest(request, realfolder, maxSize, encType, new DefaultFileRenamePolicy()); 
		
%>
 		당신의 이름은 : <%=multi.getParameter("name")%>
<% 	
		out.println(realfolder); //파일 저장위치 출력
		}catch (Exception e){
 			e.printStackTrace(); 
		} 
%>
</body>
</html>

 

'Java Category > JSP' 카테고리의 다른 글

[JSP] IntelliJ에서 Servlet 생성  (0) 2024.01.09
[JSP] IntelliJ 에서 JSP 개발환경 만들기  (1) 2024.01.08
[JSP] JSP와 데이터베이스 연동  (2) 2023.11.27
[JSP] 액션 태그(Action tag)  (1) 2023.11.27
[JSP] 세션(Session)  (1) 2023.11.25

댓글