개발/개발 자료
(JSP) File Upload
시원한물냉
2016. 2. 11. 15:04
<form action="uploadPro.jsp" method="post" enctype="multipart/form-data">
이름 : <input type="text" name="name"><br>
파일 : <input type="file" name="file"><br>
<input type="submit" name="업로드"><br>
</form>
이렇게 enctype을 설정하게되면, 이전과 같은 방식으로 파라메터를 받아올 수가 없다.
http://servlets.com/cos/ 에서 받아 설치한 cos.lib 를 사용하면, MultipartRequest 를 사용할 수 있게 된다.
<%@page import="java.io.File"%>
<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<style></style>
<script type="text/javascript"></script>
</head>
<body>
<%
String saveDir = application.getRealPath("/ex0820/");
int maxSize = 1024*1024*100;
String encType = "UTF-8";
MultipartRequest multipartRequest
= new MultipartRequest(request, saveDir, maxSize, encType, new DefaultFileRenamePolicy());
out.write("이름 : " + multipartRequest.getParameter("name") + "<br>");
out.write("파일 : " + multipartRequest.getParameter("file") + "<br>"); //null 값을 갖는다.
out.write("업로드파일명 : " + multipartRequest.getFilesystemName("file") + "<br>");
out.write("원래파일명 : " + multipartRequest.getOriginalFileName("file") + "<br>");
File file = multipartRequest.getFile("file");
%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
파일용량 : <fmt:formatNumber value="<%=file.length() %>" groupingUsed="true"/>
</body>
</html>
너무 편리하게 파일업로드 기능이 구현되었다.
업로드 이후의 과정은 파일입출력과 폼처리이므로 이전에 살펴본 내용들을 사용해서 처리하면 된다.