이 장에서는 넥사크로 플랫폼에서의 파일 업로드 / 다운로드에 대한 내용을 설명한다.
내용은 예제 형식으로 제공되며, 사이트에 맞게 수정되어져야 한다.
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;
}
}