1. jsp 파일에 처음 메인 페이지를 만들어서 연결 될 수 있도록 한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>File Upload용 폼 페이지</title>
</head>
<body>
<h1>File Upload 연습</h1>
<h3>파일 선택 창에서 Ctrl 키나 Shift키를 누른 상태에서 클릭하면 여러개의 파일을 한꺼번에 선택할 수 있다.
</h3>
<!-- 파일업로드는 post 방식으로만 사용 -->
<form action="<%=request.getContextPath()%>/fileUploadServlet.do"
enctype="multipart/form-data" method="post">
//파일뿐만 아니라 text 타입으로 사용자가 적어준 것도 보낸다.
ID : <input type="text" name="memId"><br>
<br>
<!-- multiple 은 파일을 선택할때 여러개를 선택할 수 있다. -->
Upload File1 : <input type="file" name="file1" multiple><br><br>
Upload File2 : <input type="file" name="file2"> <br><br>
<input type="submit" value="파일업로드">
</form>
<hr>
<a href="<%=request.getContextPath() %>/uploadedFilesServlet.do">전체업로드된 목록 가져오기</a>
</body>
</html>
-----------------------------------------------------------------------------------------------------
2. java 파일 전체 업로드된 목록 가져오는 서블릿
package kr.or.ddit.upload;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//업로드된 파일들이 저장된 폴더의 모든 파일 목록을 구해오는 서블릿
@WebServlet("/uploadedFilesServlet.do")
public class UploadedFilesServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
//폴더 경로 선언
private final String UPLOAD_DIR = "D:/D_Other/uploadFiles";
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//파일 객체 생성
File file = new File(UPLOAD_DIR);
if(!file.exists()) {
file.mkdir();
}
//파일이 저장된 폴더의 모든 파일 목록을 구해와서 List 에 추가한다.
File[] allFiles = file.listFiles(); //전체 파일목록 가져오기
List<FileDetailVO> fileList = new ArrayList<>();
for(File f : allFiles) {
FileDetailVO fvo = new FileDetailVO() ;
fvo.setFileName(f.getName());
fvo.setFileSize((long)Math.ceil(f.length() / 1024.0));
fvo.setUploadStatus("Successed");
fileList.add(fvo);
}
request.setAttribute("uploadFiles", fileList);
RequestDispatcher rd = request.getRequestDispatcher("/05/allUploadFiles.jsp");
rd.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}
<
-------------------
<%@page import="kr.or.ddit.upload.FileDetailVO"%>
<%@page import="java.util.List"%>
<%@ 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>
<h1<%=request.getAttribute("memId") %>> 님이 방금 업로드한 파일 목록들</h1>
<table border="1">
<thead>
<tr><th>파일이름</th><th>파일크기</th><th>업로드상태</th><th>비고</th></tr>
</thead>
<tbody>
<%
List<FileDetailVO> fileList = (List<FileDetailVO>)request.getAttribute("uploadFiles");
if(fileList != null ){
for(int i = 0 ; i <fileList.size(); i++ ){
%>
<tr>
<td><%=fileList.get(i).getFileName() %></td>
<td><%=fileList.get(i).getFileSize() %></td>
<td><%=fileList.get(i).getUploadStatus() %></td>
<td>
<a href="<%=request.getContextPath()%>/downloadServlet.do?fileName=<%=fileList.get(i).getFileName()%>">DownLoad</a>
</td>
<%
}
}
%>
</tbody>
</table>
</body>
</html>
댓글
댓글 쓰기