[java] Java Jersey에서 멀티파트 (multipart) 요청을 처리하는 방법은?

Java Jersey는 멀티파트 요청을 처리하기 위한 간단하고 강력한 기능을 제공합니다. 이를 통해 파일 업로드와 같은 멀티파트 요청을 처리할 수 있습니다.

다음은 Java Jersey에서 멀티파트 요청을 처리하는 방법입니다:

  1. 의존성 추가: 해당 기능을 사용하기 위해 jersey-media-multipart 의존성을 프로젝트에 추가해야 합니다. 이는 Maven 또는 Gradle을 사용하는 경우 아래와 같이 추가할 수 있습니다:

Maven:

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-multipart</artifactId>
    <version>2.33</version>
</dependency>

Gradle:

implementation 'org.glassfish.jersey.media:jersey-media-multipart:2.33'
  1. Resource 클래스 설정: 멀티파트 요청을 처리할 Resource 클래스에서 @POST 어노테이션 뒤에 @Consumes(MediaType.MULTIPART_FORM_DATA) 어노테이션을 추가합니다. 또한, 매개변수로 FormDataMultiPart 클래스를 받아올 수 있도록 설정합니다.
@Path("/upload")
public class UploadResource {

    @POST
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    public Response handleUpload(FormDataMultiPart formDataMultiPart) {
        // 멀티파트 요청 처리 로직 작성
    }

}
  1. 멀티파트 요청 처리: handleUpload 메서드에서는 FormDataMultiPart 인스턴스를 이용하여 멀티파트 요청을 처리할 수 있습니다. 다음은 주요 기능의 예시입니다:

// 파일 처리 로직 작성


- 다중 파일 업로드:
```java
List<FormDataBodyPart> fileParts = formDataMultiPart.getFields("file");
for (FormDataBodyPart filePart : fileParts) {
    InputStream fileInputStream = filePart.getValueAs(InputStream.class);
    String fileName = filePart.getFormDataContentDisposition().getFileName();
    
    // 파일 처리 로직 작성
}
  1. 응답 반환: 요청 처리 후 적절한 응답을 반환합니다. 이는 Response 객체를 통해 가능하며, 상태 코드, 헤더 및 본문을 포함할 수 있습니다.
return Response.ok().build();  // 성공 응답 반환
return Response.status(Response.Status.BAD_REQUEST).entity("올바르지 않은 요청").build();  // 실패 응답 반환

이제 멀티파트 요청을 처리하기 위한 Java Jersey의 기능을 사용할 수 있습니다. 위의 방법을 따라서 멀티파트 요청을 처리하는 코드를 작성해보세요.