- 업로드된 파일 서버 전송 처리2024년 08월 01일
- Song hyun
- 작성자
- 2024.08.01.:41
728x90반응형1. 파일 유효성 검사
// 유효성 검사 if(filePart==null || filePart.getSize()==0) { // 파일 전송 x 확인 response.setContentType("text/html"); response.getWriter().println("첨부 파일을 추가해주세요!"); return; }
2. 파일 원본 이름 가져오기
// 사용자가 올린 파일 원본 이름을 가져온다. // String originFileName=filePart.getSubmittedFileName(); String originFileName=Paths.get(filePart.getSubmittedFileName()).toString(); System.out.println("originFileName : "+originFileName);
3. 고유한 파일명 추출 + 확장자 앞에 넣기
// 1. 원본 파일명을 가져온다. // 2. 가능한 절대 중복되지 않을 이름을 만들어준다. -> 어떻게?! // UUID를 통해서 고유한 파일명을 만들어보자! // 3. 확장자를 분리해서 원본 파일명 + _ + 고유한 UUID를 생성해서 // 새로운 파일명을 만들어준다. String uniqueFileName=UUID.randomUUID().toString(); // a.png, b.jpeg ==> a_ngdfg.png // 파일 확장자를 추출하여, 고유한 파일명 뒤에 추가한다. String extension = ""; int i=originFileName.lastIndexOf("."); System.out.println("UNIQUE : "+uniqueFileName); System.out.println(". 인덱스 번호 : "+i); if(i>0) { // . 포함한 확장자를 추출한다. extension = originFileName.substring(i); System.out.println("extension : "+extension); } uniqueFileName+=extension; System.out.println(uniqueFileName);
4. 파일 저장 경로 설정하기
// 4. 어디에 저장할지 경로를 설정해야 한다. // C:\workweb\jsp_file_upload\src\main\images File uploadDirFile = new File("C:\\workweb\\jsp_file_upload\\src\\main\\images"); // 5. 해당 경로에 폴더가 존재하는지 확인 -> 없다면 폴더를 코드로 생성 // exist-> 존재할 시 true 반환, 없으면 false 반환 if(!uploadDirFile.exists()) { // 없으면 생성 // mkdir()과 mkdirs()의 차이= 부모 폴더가 없으면 함께 생성해! if(uploadDirFile.mkdirs()) { System.out.println("디렉토리가 생성되었습니다. "+uploadDirFile); } else { throw new ServletException("디렉토리 생성에 실패했습니다."); } }
5. 전송받은 파일을 해당 폴더(4번)에 생성하기(서버에 저장)
// 6. 파일 생성하기 File fileToSave = new File(uploadDirFile,uniqueFileName); System.out.println("fileToSave.getAbsolutePath() : "+fileToSave.getAbsolutePath()); // 7. 파일을 서버에 저장하기 filePart.write(fileToSave.getAbsolutePath());
6. 파일 전송 시 응답 구성
// 8. 응답 페이지 구성 response.setContentType("text/html"); response.getWriter().print("파일 업로드에 성공!"); response.getWriter().print("<br>"); response.getWriter().print("사용자가 올린 파일명 : "+originFileName); response.getWriter().print("<br>"); response.getWriter().print("서버에 저장된 파일명 : "+uniqueFileName);
728x90반응형'JSP' 카테고리의 다른 글
파일 업로드 코드 (0) 2024.08.01 [JSP] JSP 파일 업로드하기 (0) 2024.08.01 [JSP] JSP로 CRUD 게시판 만들기 (5) - 댓글창 만들기 (0) 2024.07.17 [JSP] JSP로 CRUD 게시판 만들기 (4) - 게시판 만들기 (0) 2024.07.16 [JSP] JSP로 CRUD 게시판 만들기 (3) - JSP 파일 및 로그인 기능 만들기 (1) 2024.07.15 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)