[java] Vaadin에서 파일 업로드 처리하기

Vaadin은 자바 개발자들이 웹 애플리케이션을 개발하기 위해 사용하는 오픈 소스 프레임워크입니다. 파일 업로드는 대부분의 웹 애플리케이션에서 필요한 기능 중 하나이며, Vaadin에서도 간단하게 파일 업로드를 처리할 수 있습니다.

파일 업로드 구성 요소 추가하기

Vaadin에서 파일 업로드를 처리하기 위해서는 Upload 컴포넌트를 사용해야 합니다. 먼저, 레이아웃에 파일 선택 버튼과 업로드 버튼을 추가해야 합니다. 다음 예제 코드는 파일 업로드 구성 요소를 추가하는 방법을 보여줍니다.

Upload upload = new Upload("파일 업로드", event -> {
    // 파일 업로드 이벤트 처리 로직 추가
});

Button uploadButton = new Button("업로드");
upload.setUploadButton(uploadButton);

Layout layout = new VerticalLayout();
layout.addComponent(upload);
layout.addComponent(uploadButton);

파일 업로드 이벤트 처리하기

파일 업로드 이벤트는 Upload.FinishedEvent 또는 Upload.SucceededEvent 등의 이벤트를 통해 처리할 수 있습니다. 다음 예제 코드는 파일 업로드 이벤트를 처리하는 방법을 보여줍니다.

upload.addFinishedListener(event -> {
    String fileName = event.getFilename();
    String mimeType = event.getMIMEType();

    // 업로드된 파일 처리 로직 추가
});

파일 저장하기

파일을 업로드한 후에는 해당 파일을 서버에 저장해야 합니다. 저장 위치와 방식은 개발자의 선택에 따라 달라질 수 있습니다. 다음은 파일을 서버에 저장하는 예제 코드입니다.

upload.addSucceededListener(event -> {
    String fileName = event.getFilename();
    String mimeType = event.getMIMEType();

    try {
        // 저장할 경로와 파일명 설정
        File file = new File("/path/to/save/" + fileName);

        // 파일 저장 로직 추가
        event.getUpload().write(file);

        // 파일 저장 후 추가 로직
    } catch (IOException e) {
        e.printStackTrace();
    }
});

참고 자료