위 파일을 프로젝트 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 |