Framework & Management/Spring

스프링웹프로젝트 Chapter22. 파일 업로드 상세 처리

구일일구 2023. 1. 5. 17:18
반응형

22.1 파일의 확장자나 크기의 사전 처리

- 첨부파일의 확장자가 'exe, sh, zip' 등의 경우 업로드를 제한 : 첨부파일을 이용한 웹 공격을 막기 위함

- 특정 크기 이상의 파일은 업로드할 수 없도록 제한

 

22.1.1 중복된 이름의 첨부파일 처리 : 기존 파일을 덮어쓰기 해버리는 문제

- 중복된 이름의 파일 처리 문제: 현재 시간을 밀리세컨드로 구분해서 파일 이름 생성 or UUID를 이용해 문자열 생성해서 처리

- 한 폴더 내 너무 많은 파일의 생성 문제 : 일반적 방법은 '년/월/일' 단위 폴더를 생성하여 파일을 저장함

 

22.1.2. 년/월/일 폴더의 생성

- java.io.File에 존재하는 mkdirs()를 이용하여 필요한 상위 폴더를 한번에 생성할 수 있음

 

22.1.3 중복 방지를 위한 UUID 적용

파일 이름을 생성할 때, 동일한 이름을 업로드하면 기존 파일을 삭제하므로 java.util.UUID 값으로 처리

UUID로 임의의 값을 생성함. 생성된 값과 원래 이름을 구분하기 위해 _ 를 추가함.

 

22.2 섬네일 이미지 생성

이미지 파일의 경우 화면에 보여지는 섬네일을 생성하는 추가적 처리를 해야함

용량이 큰 파일을 섬네일 처리하지 않으면 많은 데이터를 소비해야하므로 이미지는 특별한 경우를 제외하고 섬네일 제작하기

- 업로드된 파일이 이미지 종류의 파일인지 확인

- 이미지 파일의 경우 섬네일 이미지 생성 및 저장

 

22.3 업로드된 파일의 데이터 반환

서버에서 Ajax의 결과로 전달해야 하는 데이터는 업로드된 파일의 경로가 포함된 파일의 이름

섬네일의 경우 's_'로 시작한다는 규칙만 알고 있으면 됨

브라우저로 전송해야 하는 데이터 : 업로드된 파일의 이름 / 원본 파일의 이름 / 파일이 저장된 경로 / 업로드된 파일이 이미지인지 아닌지에 대한 정보

 

 

 

반응형