첨부파일에 대한 업로드 기능을 제공한다.
MultipartHttpServletRequest 및 MultipartFile을 통해 첨부된 파일 정보를 취득하고 서버에 저장 기능을 처리한다.
유형 | 대상소스 | 설명 | 비고 |
---|---|---|---|
Service | egovframework.com.cmm.service.EgovFileMngUtil.java | 첨부파일 처리 공통 유틸리티 | |
Controller | egovframework.com.utl.fcc.web.EgovFileUploadController.java | 테스트용 controller | |
JSP | /WEB-INF/jsp/egovframework/cmm/utl/EgovFileUpload.jsp | 테스트 페이지 |
결과값 | 메소드 | 설명 | 내용 |
---|---|---|---|
HashMap | uploadFile(MultipartFile file) | 파일 업로드 | 첨부로 등록된 파일을 서버 업로드하는 기능 |
List | parseFileInf(Map<String, MultipartFile> files, String Key, int fileKey, String atchFileId, String storePath) | 첨부파일 정보취득 | 첨부로 등록된 파일에 대한 정보를 얻는 기능 |
파일 저장 위치를 지정하기 위해서 EgovPropertyService 서비스를 사용한다.
(EgovPropertyService는 User home 디렉토리밑에 egovProps/globals.properties 파일을 참조하고 현재의 파일 업로드 기능은 해당 속성파일의 “Globals.fileStorePath” 속성을 사용한다.)
우선 globals.properties 파일에 다음과 같은 속성이 정의되었다고 가정한다.
... Globals.fileStorePath = C:/Documents and Settings/Administrator/egovProps/ ...
import egovframework.com.cmm.service.EgovFileMngUtil; ... MultipartHttpServletRequest mptRequest = (MultipartHttpServletRequest)request; Iterator fileIter = mptRequest.getFileNames(); while (fileIter.hasNext()) { MultipartFile mFile = mptRequest.getFile((String)file_iter.next()); if (mFile.getSize() > 0) { HashMap map = EgovFileMngUtil.uploadFile(mFile); System.out.println("[ "+Globals.FILE_PATH+" : "+_map.get(Globals.FILE_PATH)+" ]"); System.out.println("[ "+Globals.FILE_SIZE+" : "+_map.get(Globals.FILE_SIZE)+" ]"); System.out.println("[ "+Globals.ORIGIN_FILE_NM+" : "+_map.get(Globals.ORIGIN_FILE_NM)+" ]"); System.out.println("[ "+Globals.UPLOAD_FILE_NM+" : "+_map.get(Globals.UPLOAD_FILE_NM)+" ]"); System.out.println("[ "+Globals.FILE_EXT+" : "+_map.get(Globals.FILE_EXT)+" ]"); } }