첨부 파일 넣는 법
웹 페이지에서 이미지를 첨부할 때,
해당 HTML의 form 속성으로
enctype="multipart/form-data"
를 넣어줍니다.
첨부파일 태그는 input type="file"
여러개 첨부하려면 multiple
첨부 파일 업로드 용량 설정
업로드 용량이 기본값이 1MB로 설정돼있기 때문에 application.properties 파일에
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
필요한 용량을 설정해서 추가해주면 됩니다.
첨부 파일 로컬에 저장하기
전달하는 컨트롤러에서 MultipartFile 객체의 매개변수로 받아줍니다.
public String 메소드명(MultipartFile mainImg)
mainImg는 input file의 name속성값입니다.
String originFileName = mainImg.getOriginalFilename();
//첨부될 파일 명 설정
String uuid = UUID.randomUUID().toString(); //랜덤
String extension = originFileName.substring(originFileName.lastIndexOf(".")); //확장자
String attachedFileName = uuid + extension;
try {
File file = new File(ConstantVariable.UPLOAD_PATH + attachedFileName);
mainImg.transferTo(file);
} catch (IOException e) {
throw new RuntimeException(e);
}
첨부된 파일을 저장할 때 파일 명이 기존에 있는 파일명들과 중복될 수 있기 때문에
UUID를 사용해서 저장할 파일 명을 랜덤으로 생성해줍니다.
UUID.randomUUID().toString()
여기에 기존파일명(originFileName)과 확장자(extension)를 붙여주면
첨부파일명(attachedFileName)이 완성됩니다!
File file = new File(경로 + 파일명);
파일을 첨부할 때 예외가 발생할 가능성이 높기 때문에 예외처리를 해줍니다.
여기서 경로는 이미지를 계속해서 저장할 고정된 폴더 위치라서 상수 변수로 따로 만들었습니다.
상수는 public static final로 만들어주면 됨!
이렇게 쉽고 재밌게 첨부파일을 넣고 저장할 수 있습니다~!