이 장에서는 넥사크로 플랫폼에서의 파일 업로드 / 다운로드에 대한 내용을 설명한다.
내용은 예제 형식으로 제공되며, 사이트에 맞게 수정되어져야 한다.
File Upload
파일 데이터를 업로드 하는 경우 Spring의 MultipartHttpServletRequest를 이용하여 처리 한다.
아래는 해당 처리에 대한 sample 이다.
@Controller public class FileController { @RequestMapping(value = "/uploadFiles.do") public NexacroResult uploadFiles(HttpServletRequest request , HttpServletResponse response) throws Exception { if(!(request instanceof MultipartHttpServletRequest)) { if(log.isDebugEnabled()) { log.debug("Request is not a MultipartHttpServletRequest"); } return new NexacroResult(); } MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; // parameter and multipart parameter Enumeration<String> parameterNames = multipartRequest.getParameterNames(); // files.. Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); String filePath = getFilePath(); Set<String> keySet = fileMap.keySet(); for(String name: keySet) { MultipartFile multipartFile = fileMap.get(name); String originalFilename = multipartFile.getOriginalFilename(); // upload some logic… if(log.isDebugEnabled()) { log.debug("uploaded file write success. file={}", originalFilename); } } return new NexacroResult(); } }
File Download
파일을 다운로드 할 경우 NexacroFileResult를 이용하여 데이터를 전달한다.
아래는 파일 다운로드에 대한 예제이다.
@Controller public class FileController { @RequestMapping(value = "/advancedDownloadFile.do") public NexacroFileResult downloadFile( HttpServletRequest request , @RequestParam String fileName ) throws Exception { String characterEncoding = request.getCharacterEncoding(); if(characterEncoding == null) { characterEncoding = PlatformType.DEFAULT_CHAR_SET; } String realFileName; // some logic… File file = new File(realFileName); NexacroFileResult result = new NexacroFileResult(file); // default - application/octet-stream // result.setContentType(contentType); // set MIME TYPE return result; } }