Java

File Upload API

DionysosJH™ 2010. 6. 13. 22:29

아래 경로로 이동한다.

http://www.Servlets.com

왼쪽 메뉴에서 com.oreilly.servlet을 선택한 후, http://servlets.com/cos/cos-26Dec2008.zip 다운로드 한다.

 

fileupload\WebContent\upload_form.html 생성

 

upload_form.html

<!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>

<!-- 필수적으로 아래와 같은 Form 속성값들을 사용하여야 한다. -->

<form action="upload" method="post" enctype="multipart/form-data">

Comment : <input type="text" name="comment"/><br/>

<!-- Local System에서 upload File 선택을 위한 Type = file 이다. -->

<input type="file" name="file"/><br/>

<input type="submit" value="Upload"/></form>

</body>

</html>

 

 

아래와 같이 Servlet 생성

uploadServlet.java

package upload;

 

import java.io.IOException;

import java.io.PrintWriter;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.oreilly.servlet.MultipartRequest;

import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;

 

/**

* Servlet implementation class UploadServlet

*/

public class UploadServlet extends HttpServlet {

 

//upload된 파일이 저장될 Location 저장할 변수 uploadDir

private String uploadDir="D:\\00.KOSTA_JAVA\\eclipse\\Workspace\\fileupload\\";

 

//upload 가능한 파일의 최대 Size 아래에서는 10M로 설정

private int maxFileSize=1024*1024*10;

 

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

//Upload Process -MultipartRequest 객체 생성 - 객체가 생성되면 upload Processing 끝

//MultipartRequest 객체를 통해 Client단에서 넘어온 Data를 조회한다.

MultipartRequest req=new MultipartRequest(request,uploadDir,maxFileSize,"euc-kr",new DefaultFileRenamePolicy());

 

//upload_form.html에서 넘어온 comment값 저장

String comment=req.getParameter("comment");

 

//upload된 fileName 읽기

String fileName=req.getFilesystemName("file");

 

PrintWriter out=response.getWriter();

out.println("upload file name :"+ fileName+"<br/>");

out.println("comment : "+ comment);

}

}