일반적으로 form 을 submit 하게되면, form안의 element들이 id 나 name으로 submit된다.
submit을 받아 처리하는 action에 정의된 handler들에서는 request.getParameter( "xxx" ); 를 통해 값을 받게 되는데...
파일을 서버에 저장하기 위해서 <form enctype="multipart/form-data" ... 을 사용하게 된다.
하지만, 이때는...
submit을 받아 처리하는 action에 정의된 handler들에서는 request.getParameter( "xxx" ); 를 통해 값을 받을 수 없고,
직접 요청해야 한다. com.oreilly.servlet.MultipartRequestif( request.getContentType() != null && request.getContentType().indexOf("multipart/form-data") > -1 ) {
String saveDirectory = config.getServletContext().getRealPath( uploadDir + "/education" );
File dir = new File( saveDirectory );
if( !dir.exists() ) dir.mkdir();
int maxSize = 10 * 1024 * 1024;
DefaultFileRenamePolicy dfrp = new DefaultFileRenamePolicy();
MultipartRequest multi = new MultipartRequest( request, saveDirectory, maxSize, "euc-kr", dfrp );
multi.getParameter( "xxx" );
}
MultipartRequest 를 사용하면
MultipartRequest 를 new 하는 순간에...
<input type="file" ... 로 정의 되어있는 파일들이 saveDirectory로 지정된 곳에 upload 된다.
파일이름이 같은 경우를 위해서는,
DefaultFileRenamePolicy 를 써주면 좋다. (안써도 무방하다)
저장되는 파일명은 aaa.txt 가 2개라면...
두번째 파일은 aaa(1).txt로 저장된다.
저장되는 파일명과
보여줄 파일명이 다를테니...
DB에 저장할 때는...2개 다 저장하는 게 좋을 것 같다.
아~~~주 상세한 설명은 아래를 참고하시라~
"MultipartRequest를 이용하여 업로드구현하기":http://aboutjsp.com/lec/multipart.jsp
http://lilymate.tistory.com/trackback/192
반응형
'Backend > Java&Spring Framework' 카테고리의 다른 글
노프레임에서 사이드바 (0) | 2011.12.26 |
---|---|
Posted content type isn't multipart/form-data (0) | 2011.11.24 |
The requested resource ()is not available. (0) | 2011.11.18 |
OPTION 전화번호 (0) | 2011.11.16 |
java (0) | 2011.11.15 |