개발_웹/Java

Java | 파일 업로드 (cos.jar)

zuyo 2019. 5. 11. 15:24
반응형

1. cos.jar 라이브러리 다운로드
http://www.servlets.com/cos/

 

Servlets.com | com.oreilly.servlet

 

www.servlets.com

2. 프로젝트에 cos.jar 라이브러리 추가

 

3. 업로드 경로 생성

 

4. 업로드 form

	<form action="FileUploadServlet" method="post" enctype="multipart/form-data">
		<input type="file" name="file"/><br>
		<input type="submit" name="submit" value="전송"/>
	</form>

 

5. 서블릿

@WebServlet("/FileUploadServlet")
public class FileUploadServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 파일이 저장되는 실제 경로
		String realPath = request.getServletContext().getRealPath("resources/image");
		
		// 위 경로의 디렉토리가 존재하지 않으면 새로 생성
		File dir = new File(realPath);
		if (!dir.exists()) {
			dir.mkdirs();
		}
				
		// 파일크기 제한 설정 (15mb)
		int sizeLimit = 15 * 1024 * 1024;

		// MultipartRequest 객체를 생성하면 파일 업로드 수행
		MultipartRequest multpartRequest = new MultipartRequest(request, realPath, sizeLimit, "utf-8",
				new DefaultFileRenamePolicy());
		
		// 업로드한 파일명 가져오기
		String fileName = multpartRequest.getFilesystemName("file");
		
		response.sendRedirect("result.jsp?filename=" + fileName);
	}
}

 

6. 업로드한 이미지 출력

파일이 실제 저장된 로컬 경로(C:\Users\...\resources\image)가 아닌 서버 경로(ex-FileUpload/resources/image)를 통해 접근해야 한다.

<img src="${pageContext.request.contextPath }/resources/image/${param.filename}">

 

* 업로드 한 파일의 위치

실제로 파일이 저장되는 곳은 현재 작업하고 있는 프로젝트가 아니라 서버에 올라가 있는 프로젝트이다.

반응형