Spring Boot 2.x 파일 업로드 기능 구현

파일 업로드 기능 의 실현 은 우리 가 웹 응용 을 할 때 가장 흔히 볼 수 있 는 응용 장면 이다.예 를 들 어 이미지 업로드,엑셀 파일 데이터 가 져 오기 등 기능 을 실현 하려 면 우리 가 먼저 파일 의 업 로드 를 실현 한 다음 에 이미지 의 재단,엑셀 데이터 의 분석 입고 등 후속 작업 을 해 야 한다.
오늘 이 글 을 통 해 Spring Boot 에서 파일 업로드 방법 을 배 워 보 겠 습 니 다.
해 보다
STEP 1:기본 적 인 Spring Boot 프로젝트 를 만 듭 니 다.아직 할 줄 모 르 면 이'쾌속 입문'을 먼저 보 세 요.
두 번 째 단계:pom.xml 에서 모델 엔진 의존 도 를 도입 합 니 다.

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
당신 도 당신 이 잘 아 는 다른 모델 엔진 을 선택 할 수 있 습 니 다.예 를 들 어 Freemarker.
세 번 째 단계:resources 디 렉 터 리 에서 새 디 렉 터 리 templates 을 만 듭 니 다.templates 디 렉 터 리 에 파일 업로드 페이지 upload.html 을 만 듭 니 다.내용 은 다음 과 같 습 니 다.

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8" />
 <title>      </title>
</head>
<body>
<h1>      </h1>
<form method="post" action="/upload" enctype="multipart/form-data">
         :<input type="file" name="file"><br>
 <hr>
 <input type="submit" value="  ">
</form>
</body>
</html>
네 번 째 단계:파일 업로드 처리 컨트롤 러 를 만 들 고 UploadController 라 고 명명 합 니 다.

@Controller
@Slf4j
public class UploadController {

 @Value("${file.upload.path}")
 private String path;

 @GetMapping("/")
 public String uploadPage() {
  return "upload";
 }

 @PostMapping("/upload")
 @ResponseBody
 public String create(@RequestPart MultipartFile file) throws IOException {
  String fileName = file.getOriginalFilename();
  String filePath = path + fileName;

  File dest = new File(filePath);
  Files.copy(file.getInputStream(), dest.toPath());
  return "Upload file success : " + dest.getAbsolutePath();
 }

}
그 중 에는 이 몇 가지 중요 한 요소 가 포함 되 어 있다.
  • 구성원 변 수 는 path 이 고 @Value 을 통 해 설정 파일 의 file.upload.path 속성 을 주입 합 니 다.이 설정 은 파일 업로드 후 저장 할 디 렉 터 리 위 치 를 정의 하 는 데 사 용 됩 니 다.
  • GET 요청,경로 /,upload.html 이 파일 업로드 페이지 를 표시 하 는 데 사 용 됩 니 다.
  • POST 요청.경로 /upload,업로드 한 파일 을 처리 하 는 데 사 용 됩 니 다.즉,file.upload.path 설정 의 경로 아래 에 저장 합 니 다.
  • 메모:파일 업로드 의 주요 절 차 를 보 여 줍 니 다.실제 응용 은 더 많은 내용 을 고려 해 야 합 니 다.예 를 들 어 파일 업로드 후의 파일 이름 처리(이름 바 꾸 기 방지),분포 식 상황 에서 파일 업로드 후 어떻게 공유 하 는 지 등 입 니 다.더 높 은 마지막 으로 우 리 는 후속 문장 을 계속 이야기 했다.
    STEP 5:application.properties 프로필 편집
    
    spring.servlet.multipart.max-file-size=2MB
    spring.servlet.multipart.max-request-size=2MB
    
    file.upload.path=/Users/didi/
    앞의 두 매개 변 수 는 업로드 요청 과 업로드 파일 의 크기 를 제한 하 는 데 사 용 됩 니 다.file.upload.path 은 위 에서 우리 가 정의 한 업로드 파일 을 저장 하 는 경로 입 니 다.
    테스트 검증
    첫 번 째 단계:Spring Boot 애플 리 케 이 션 을 시작 하고 http://localhost:8080 을 방문 하면 다음 파일 업로드 페이지 를 볼 수 있 습 니 다.

    두 번 째 단계:2MB 이상 의 파일 을 선택 하고'제출'단 추 를 누 르 면 업로드 가 완 료 됩 니 다.
    업로드 에 성공 하면 다음 과 같은 페이지 가 표 시 됩 니 다.

    인쇄 된 파일 경로 에 따라 파일 이 실제로 업로드 되 었 는 지 확인 할 수 있 습 니 다.
    코드 예제
    본 논문 의 관련 예 는 아래 창고 중의 chapter4-3 목록 을 볼 수 있다.
    Github: https://github.com/dyc87112/SpringBoot-Learning/
    Gitee: https://gitee.com/didispace/SpringBoot-Learning/
    여기 서 Spring Boot 2.x 파일 업로드 기능 에 관 한 글 을 소개 합 니 다.더 많은 Spring Boot 2.x 파일 업로드 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 읽 어 주시 기 바 랍 니 다.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기