파일을 전송하기 위해선 다들 아시겠지만 form을 사용하면 된다.
화면
<form id="formXml" name="formXml" method="post" action="" enctype="multipart/form-data" >
<input type="file" name="xml_file" id="xml_file"/>
//--- submit(); --- //
</form>
다들 사용하는 방법이라 딱히 설명할게 없다. submit은 자바스크립트로 어디서든 가능하니 뺐다. 본인은 다른 곳에서 submit한다.
자바에서 처리하는 방법은 여러가지 있다.
방법 1.
MultipartFile mf = (MultipartFile) ((MultipartHttpServletRequest) req).getFileMap().get("xml_file");
InputStream is = mf.getInputStream();
이건 문제가 좀 있다. xml_file에 데이터가 없으면 오류가 발생한다. 예외처리를 하면 되지만 왠지 부족해보인다. 하지만 가장 간단하다. 사용자가 딴짓을 할게 이유가 없다면 자바스크립트로 예외처리를 하면 되겠다. 아니면 별도의 파라메터로 체크를 하던가... 개인적으론 둘다 해주면 좋다고 본다.
방법2.
DefaultMultipartHttpServletRequest multipartRequest = new DefaultMultipartHttpServletRequest(request);
MultipartFile multipartFile = multipartRequest.getFile("file");
사용해보지 못했다. 현재 사용하는 스프링 버젼을 확인해보니 1.1.1이라는 놀라운 사실과 2.5부터 지원되는 클래스라는 사실을 알았다.... 구지 버젼업으로 뒤엎는 방법은 사용하고 싶지 않아서 테스트하지 않았다. 다음에 해봐야지...
찾다보니 다양한 방법이 있었다. 하루 날잡아서 전부 테스트해보고 싶다.
'Java > Spring' 카테고리의 다른 글
dwr 오류 (0) | 2012.08.01 |
---|---|
스프링 버젼 확인하기 (0) | 2012.06.28 |
spring + freemarker (0) | 2012.06.22 |
Spring 3.0 프로그래밍 챕터3 (0) | 2011.05.31 |
Spring 3.0 프로그래밍 챕터2 (0) | 2011.05.31 |