FileUtils ( 파일 저장 경로 , 디비 저장 경로 및 파일 업로드 )
페이지 정보
![profile_image](https://dancepkt.cafe24.com/data/member_image/ad/admin.gif?1630310007)
본문
package web.common;
import java.io.File;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import web.dto.BoardFileDto;
@Component //개발자가 직접 작성한 Class를 객체(Bean)로 등록 가능하게 하는 기능
public class FileUtils {
public List<BoardFileDto> parseFileInfo(int boardIdx, MultipartHttpServletRequest multipartHttpServletRequest) throws Exception {
if(ObjectUtils.isEmpty(multipartHttpServletRequest)) {
return null;
}
List<BoardFileDto> fileList = new ArrayList<>();
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyyMMdd");
ZonedDateTime current = ZonedDateTime.now();
// 01. sts4 기본 톰캣을 이용시
String path = "C:/springboot/web/src/main/resources/static/upload/" + current.format(format); //파일 저장 경로
// 02. 설치한 톰캣을 연동시
//String path = "src/main/resources/static/upload/" + current.format(format); //폴더 경로
File file = new File(path);
if(file.exists() == false) {
file.mkdirs();
}
Iterator<String> iterator = multipartHttpServletRequest.getFileNames();
String newFileName, originalFileExtension, contentType;
while(iterator.hasNext()) {
List<MultipartFile> list = multipartHttpServletRequest.getFiles(iterator.next());
for(MultipartFile multipartFile : list) {
if(multipartFile.isEmpty() == false) {
contentType = multipartFile.getContentType();
if(ObjectUtils.isEmpty(contentType)) {
break;
}
else {
if(contentType.contains("image/jpeg")) {
originalFileExtension = ".jpg";
}
else if(contentType.contains("image/png")) {
originalFileExtension = ".png";
}
else if(contentType.contains("image/gif")) {
originalFileExtension = ".gif";
}
else {
break;
}
}
newFileName = Long.toString(System.nanoTime()) + originalFileExtension;
BoardFileDto boardFile = new BoardFileDto();
boardFile.setBoardIdx(boardIdx);
boardFile.setFileSize(multipartFile.getSize());
boardFile.setOriginalFileName(multipartFile.getOriginalFilename());
boardFile.setStoredFilePath(path + "/" + newFileName); //디비 저장 경로
// boardFile.setStoredFilePath("/upload/"+current.format(format)+"/"+newFileName); //디비 저장 경로
fileList.add(boardFile);
file = new File(path + "/" + newFileName);
multipartFile.transferTo(file);
}
}
}
return fileList;
}
}
- 이전글BoardFileDto 24.06.11
- 다음글BoardServiceImpl 24.06.11
댓글목록
등록된 댓글이 없습니다.