feat: mpower 적용 완료
parent
c93cfe870a
commit
ce0bada846
@ -0,0 +1,12 @@
|
|||||||
|
package com.xit.biz.ctgy.v2.service;
|
||||||
|
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Lim, Jong Uk (minuk926)
|
||||||
|
* @since 2021-07-16
|
||||||
|
*/
|
||||||
|
public interface ICmmFileService {
|
||||||
|
String uploadFiles(MultipartFile[] files, String rootPath, String uploadPath);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,93 @@
|
|||||||
|
package com.xit.biz.ctgy.v2.service.impl;
|
||||||
|
|
||||||
|
import com.xit.biz.ctgy.v2.service.ICmmFileService;
|
||||||
|
import com.xit.core.util.AssertUtils;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class CmmFileService implements ICmmFileService {
|
||||||
|
|
||||||
|
@Value("${file.cmm.upload.url}")
|
||||||
|
private String serviceUrl;
|
||||||
|
|
||||||
|
@Value("${file.cmm.upload.allow.ext:}")
|
||||||
|
private String allowExt;
|
||||||
|
|
||||||
|
@Value("${file.cmm.upload.max.size:1024}")
|
||||||
|
private long maxSize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 파일 업로드
|
||||||
|
* 업로드된 최종 경로 return(ex : 20220406)
|
||||||
|
* -> rootPath + uploadPath + 해당경로 + fileName
|
||||||
|
* @param files MultipartFile[]
|
||||||
|
* @return String makePath
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public String uploadFiles(MultipartFile[] files, String rootPath, String uploadPath) {
|
||||||
|
String makePath = "";
|
||||||
|
|
||||||
|
if(files != null && files.length > 0){
|
||||||
|
//makePath = File.separator + DateUtil.getToday("");
|
||||||
|
|
||||||
|
// 파일 경로 : upload root 제외
|
||||||
|
String urlPath = uploadPath + makePath;
|
||||||
|
// 물리적인 파일 저장 위치
|
||||||
|
String fileUploadPath = rootPath + urlPath;
|
||||||
|
File file = new File(fileUploadPath);
|
||||||
|
if(!file.exists()) file.mkdirs();
|
||||||
|
|
||||||
|
for(MultipartFile mf : files) {
|
||||||
|
if (!mf.isEmpty()) {
|
||||||
|
String orgFileName = "";
|
||||||
|
try {
|
||||||
|
orgFileName = StringUtils.cleanPath(Objects.requireNonNull(mf.getOriginalFilename()));
|
||||||
|
mf.transferTo(new File(fileUploadPath + File.separator + orgFileName));
|
||||||
|
|
||||||
|
// inputStream을 가져와
|
||||||
|
// copyOfLocation (저장위치)로 파일을 쓴다.
|
||||||
|
// copy의 옵션은 기존에 존재하면 REPLACE(대체한다), 오버라이딩 한다
|
||||||
|
//Files.copy(multipartFile.getInputStream(), copyOfLocation, StandardCopyOption.REPLACE_EXISTING);
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
String errMsg = String.format("File Upload Error :: %s[ %s ]", e.getLocalizedMessage(), orgFileName);
|
||||||
|
//TODO : 에러처리
|
||||||
|
//return RestError.of(String.format("File Upload Error :: %s", orgFileName));
|
||||||
|
AssertUtils.isTrue(false, errMsg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return makePath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
// File.seperator 는 OS종속적이다.
|
||||||
|
// Spring에서 제공하는 cleanPath()를 통해서 ../ 내부 점들에 대해서 사용을 억제한다
|
||||||
|
Path copyOfLocation = Paths.get(uploadDir + File.separator + StringUtils.cleanPath(multipartFile.getOriginalFilename()));
|
||||||
|
try {
|
||||||
|
// inputStream을 가져와서
|
||||||
|
// copyOfLocation (저장위치)로 파일을 쓴다.
|
||||||
|
// copy의 옵션은 기존에 존재하면 REPLACE(대체한다), 오버라이딩 한다
|
||||||
|
Files.copy(multipartFile.getInputStream(), copyOfLocation, StandardCopyOption.REPLACE_EXISTING);
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new FileStorageException("Could not store file : " + multipartFile.getOriginalFilename());
|
||||||
|
}
|
||||||
|
*/
|
Loading…
Reference in New Issue