[java] Java Jersey에서 파일 다운로드 시 파일 이름을 지정하는 방법은?

Java Jersey는 웹 애플리케이션을 개발하기 위한 자바 프레임워크입니다. 파일 다운로드 시에는 Response 객체를 사용하여 다운로드할 파일의 내용과 함께 파일 이름을 전달해야 합니다.

아래는 파일 다운로드 시 파일 이름을 지정하는 예제 코드입니다.

@GET
@Path("/download")
public Response downloadFile() {
    // 다운로드할 파일 정보 가져오기
    File file = new File("경로/파일명");
    
    // 파일 이름 인코딩
    String encodedFileName = new String(file.getName().getBytes("UTF-8"), "ISO-8859-1");
    
    return Response.ok(file, MediaType.APPLICATION_OCTET_STREAM)
                   .header("Content-Disposition", "attachment; filename=\"" + encodedFileName + "\"")
                   .build();
}

위 코드에서 파일명은 다운로드할 실제 파일의 경로와 파일 이름으로 바꿔주시면 됩니다. encodedFileName은 파일 이름을 인코딩하는 과정입니다. 인코딩을 하여 특정 문자들을 처리해줍니다.

Response.ok() 메서드에 다운로드할 파일과 MediaType을 전달하여 Response 객체를 생성합니다. 그리고 header() 메서드를 사용하여 Content-Disposition 헤더를 설정하고, 파일 이름을 지정합니다.

이렇게 하면 파일 다운로드 시 지정한 파일 이름으로 다운로드가 진행됩니다.

자세한 내용은 Java Jersey 공식 문서를 참고하시면 도움이 됩니다.