반응형


■ 간단한 파일 업로드


 COS 라이브러리를 이용한 업로드를 구현해보자. 우선 중요한 라이브러리 파일을 다운받아야 한다.


◆ COS 라이브러리 다운로드

  http://www.servlets.com/ 

-> 좌측 메뉴에서 com.oreilly.servlet를 클릭하여 2008 버젼을 다운 받는다.


 다운 받은 라이브러리 jar 파일을 WEB-INF -> lib폴더 안에 넣어준다. 

 그리고 난 후 Java Build Path에서 Add JARS를 통해 경로를 잡아준다.



 JSP 파일에서 type을 file로 설정하고 업로드할 준비를 한다. 

 또한 form형식에서는 꼭 enctype="multipart/form-data"를 달아줘야한다. 그렇지 않으면 파일 업로드가 불가능하다.


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


<form name="goodsRegForm" action="goodsRegProcess" method="post" 

enctype="multipart/form-data">


 Controller에서 처리하는 방법이다. 우선 아까 경로를 잡아준 cos.jar 라이브러리에 있는 파일을 import 시켜준다.


import com.oreilly.servlet.MultipartRequest;

import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;


 import를 시킨 후, MultipartRequest를 이용하여 업로드를 해보자.

 MultipartRequest를 선언하고 이미지 크기, 경로 등을 설정하여 업로드를 시켜주면 된다.


MultipartRequest multi = null;

req.setCharacterEncoding("utf-8");

int sizeLimit = 10 * 1024 * 1024 ; // 10MB 크기 제한

String savePath = "C:/Users/ATEC Designer/Documents/workspace-sts-

3.6.4.RELEASE/SpringTest/src/main/webapp/resources/img/upload"; 

// 저장 경로 설정

System.out.println("savePath : " + savePath);

try{

multi=new MultipartRequest(req, savePath, sizeLimit, 

"utf-8", new DefaultFileRenamePolicy()); 

// 업로드

} catch (Exception e) {

e.printStackTrace();

// 예외처리


 이러한 방식으로 처리를 한다면 기본적으로 파일의 업로드는 가능하게 된다. 조금 더 다듬어서 사용을 한다면, 다중 업로드도 가능하며 약간의 문제를 보완할 수 있을 것이다.


★ 중요

 이와같이 enctype="multipart/form-data"를 사용하게 되면, request.getParameter가 사용이 불가능하다. 이때, MultipartRequest에서 제공하는 Request를 사용해야 되며 평상시와 동일하게 파라미터를 주고 받을 수 있다.


String gCategory1 = multi.getParameter("gCategory1");

String gName = multi.getParameter("gName");

String gContent = multi.getParameter("gContent");


 이미지, 텍스트, PDF 등 다양한 파일이 업로드가 가능하며, 코딩에 따라 설정을 다르게 할 수도 있습니다. 자기 입맛에 맞게 사용하는 것이 중요할 것 같습니다. 이상입니다.



↓ 공감 을 눌러주시면 블로거에게 큰 힘이 됩니다 !

반응형

블로그 이미지

SkyBaby

부부가 운영하는 정보 공유 공간입니다. 다양한 일상, 요리, 맛집탐방, 게임, 공부 등의 정보를 담고 있습니다.