웹
jsp 파일 업로드
코드 죄수
2022. 10. 11. 19:21
servlets.com 사이트에서 cos.jar를 다운 받아야함
cos.zip을 다운 받고 안에있는 jar를
lib 폴더 안에 넣으면 이제 업로드 할 수 있는 환경이 만들어 진것이다.
파일 업로드 페이지를 만든다.
form 태그 안에 entype으로 multipart/form-data를 적어 주어야 파일을 다음 페이지로 넘길 수 있다!
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<CENTER>
<form action="fileUpload.jsp" method="post" enctype="multipart/form-data">
// 타입을 이렇게 적어주어야 파일을 넘길 수 있다
<table border="1">
<thead>
<th colspan="2">파일 업로드 폼</th>
</thead>
<tbody>
<tr>
<td>
올린사람 :
</td>
<td>
<input type="text" name="name">
</td>
</tr>
<tr>
<td>제목:</td>
<td><input type="text" name="subject"></td>
</tr>
<tr>
<td>파일명1:</td>
<td><input type="file" name="file1"></td>
</tr>
<tr>
<td>파일명2:</td>
<td><input type="file" name="file2"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="전송"></td>
</tr>
</tbody>
</table>
</form>
</CENTER>
</body>
</html>
파일을 다운받아서 폴더에 넣을 페이지
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.oreilly.servlet.MultipartRequest" %>
<%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %>
<%@ page import="java.util.*" %>
<%
String uploadPath=request.getRealPath("upload"); // 경로 upload라는 파일에 저장 할 것
int size = 10*1024*1024; //크기
String name="";
String subject = "";
String file1 ="";
String file2 ="";
try{
MultipartRequest multi = new MultipartRequest(
request,
uploadPath, //저장 위치
size, //크기
"euc-kr", //인코딩
new DefaultFileRenamePolicy());//파일 중복 확인
name = multi.getParameter("name");
subject = multi.getParameter("subject");
Enumeration files = multi.getFileNames();
String files1 = (String) files.nextElement();
file1 = multi.getFilesystemName(files1);
String files2 = (String) files.nextElement();
file2 = multi.getFilesystemName(files2);
}catch(Exception e){
e.printStackTrace();
}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form name="filecheck" action="fileCheck.jsp" method="post">
<input type="hidden" name="name" value="<%=name %>">
<input type="hidden" name="subject" value="<%=subject %>">
<input type="hidden" name="file1" value="<%=file1 %>">
<input type="hidden" name="file2" value="<%=file2 %>">
</form>
<a href="#" onclick="javascript:filecheck.submit()">업로드 확인 및 다운로드 페이지 이동</a>
</body>
</html>
폴더 위치는 그냥 이클립스 위치가 아니라 톰캣이 읽는 이클립스 경로에 만들어야함
C:\Users\user\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\프로젝트명
중간에 tmp0이 tmp1인 사람도 있음
만약 안되면 톰캣이 띄우는 오류에 경로가 있으니 확인 하고 폴더를 생성하면 된다.
파일을 누르면 파일이 열리게 된다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("euc-kr");
String name=request.getParameter("name");
String subject = request.getParameter("subject");
String file1=request.getParameter("file1");
String file2=request.getParameter("file2");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>파일 업로드 확인 및 다운로드</title>
</head>
<body>
올린사람:<%=name %><br/>
제목:<%=subject %><br/>
파일명1:<a href="upload/<%=file1 %>"><%=file1 %></a><br/>
파일명2:<a href="upload/<%=file2 %>"><%=file2 %></a><br/>
</body>
</html>