WEB, 실전jsp강좌, File Upload

  • fileForm.js
<form action="fileFormOk.jsp" method="post" enctype="multipart/form-data">
	파일 : <input type="file" name="file">
	<input type="submit" value="File Upload">
</form>
  • fileFormOk.js
<%@page import="java.util.Enumeration"%>
<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%
	// 이클립스상의 파일저장 경로 != 실제 파일저장 경로 (아파치 서버쪽에 동일한 폴더가 만들어지고 그곳에 저장된다)
	String path = request.getRealPath("fileFolder");

	int size = 1024 * 1024 * 10; //10M
	String file = "";
	String oriFile = "";	// 오리지널파일

	try{
		// DefaultFileRenamePolicy() : 동일한 파일이 올라오면 파일이름1,2,3...붙여서 업로드한다.
		MultipartRequest multi = new MultipartRequest(request, path, size, "EUC-KR", new DefaultFileRenamePolicy());

		Enumeration files = multi.getFileNames();
		String str = (String)files.nextElement();

		file = multi.getFilesystemName(str);	// 중복되어있을때 이름
		oriFile = multi.getOriginalFileName(str);	// 파일의 실제이릅

	} catch (Exception e) {
		e.printStackTrace();
	}
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
 	file upload success!
</body>
</html>

tip !

  • 이클립스상의 파일업로드 폴더에는 실제로 파일이 업로드 되지않는다
  • 서버상에 동일한 폴더가 생성되고 그곳에 파일이 업로드 된다

Reference