소스는 돌아가지 않아요.. ^^ 대략적으로 이렇다~

// 파일정보 전달 Class
public class FileCommand {
    private String originalFileNm;
    private String storedFileNm;
    private Long fileSize;
    private String fileExtension;
    private byte[] fileInfo;
}

// MultipartFile 형식으로 업로드 받은 메서드
public void fileUpload(MultipartFile uploadFile) {

	FileCommand fileCommand = new FileCommand();

    // 확장자
    String fileExtension = "." + FilenameUtils.getExtension(uploadFile.getOriginalFilename());

    // 저장파일명
    String localDateTimeNow = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
    String storedFileNm = localDateTimeNow + fileExtension;
    agreeFileCommand.setOriginalFileNm(uploadFile.getOriginalFilename()); // 원본 파일명
    agreeFileCommand.setStoredFileNm(storedFileNm); // 저장파일명
    agreeFileCommand.setFileSize(uploadFile.getSize()); // 파일 사이즈
    agreeFileCommand.setFileExtension(fileExtension); // 파일 확장자
    agreeFileCommand.setFileInfo(uploadFile.getBytes()); // 파일정보

    // @PostMapping - api 호출 공통
    uploadApi(@RequestBody FileCommand command);
}


// 파일 수신 API
@PostMapping("fileSave")
public void fileSave(@RequestBody FileCommand file) {
    File file = fileSave(file.getFilePath(), file.getFileNm(), file.fileInfo() );
}


/** 파일 업로드 */
public File fileSave(String filePath, String fileNm, byte[] fileInfo) {

    // 파일업로드 처리
    File tmpFile = new File(filePath + fileNm);
    try {
        FileUtils.copyToFile(new ByteArrayInputStream(fileInfo), tmpFile);
    } catch (IOException e) {
        log.error("동의서파일 저장실패 : " + filePath + storedFileNm);
    }
    return new File(filePath + storedFileNm);
}

+ Recent posts