>웹 프론트엔드 >JS 튜토리얼 >Ajax 및 Struts2 작업을 사용하여 파일 다운로드를 트리거하는 방법은 무엇입니까?

Ajax 및 Struts2 작업을 사용하여 파일 다운로드를 트리거하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-19 14:26:10773검색

How to Trigger File Downloads with Ajax and a Struts2 Action?

Ajax를 사용한 비동기 파일 다운로드

제공된 시나리오에서는 파일 다운로드에 Struts2 액션이 사용되지만 jQuery는 문제가 발생합니다. post() 호출은 파일 다운로드 창을 여는 대신 파일을 바이너리 스트림으로 검색합니다. 이 글의 목적은 문제를 해결하고 파일 다운로드 창을 표시하는 솔루션을 제공하는 것입니다.

Ajax를 사용하여 파일 다운로드를 활성화하는 핵심은 Content-Disposition 응답 헤더를 활용하는 데 있습니다. 이 헤더는 첨부 파일로 설정되어야 합니다. filename={fileName}, 여기서 {fileName}은 원하는 파일 이름을 나타냅니다. 이 헤더를 설정하면 브라우저가 사용자에게 파일 다운로드 창을 표시하도록 지시합니다.

Struts2 작업에서 Content-Disposition 헤더를 동적으로 수정하려면 인터셉터를 사용할 수 있습니다. 이를 수행할 수 있는 방법의 예는 다음과 같습니다.

public class DownloadInterceptor implements Interceptor {

    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        HttpServletResponse response = ServletActionContext.getResponse();
        response.setHeader("Content-Disposition", "attachment; filename=" + actionInvocation.getArgs()[0]); // Replace with your code
        return invocation.invoke();
    }

    @Override
    public void destroy() {}

    @Override
    public void init() {}
}

인터셉터를 구현한 후에는 이를 다운로드 작업에 적용하여 Content-Disposition 헤더를 동적으로 설정할 수 있습니다.

By 이러한 단계를 결합하면 Ajax를 사용하여 비동기적으로 파일을 다운로드하고 사용자가 파일을 로컬에 저장할 수 있도록 Struts2 애플리케이션을 구성할 수 있습니다.

위 내용은 Ajax 및 Struts2 작업을 사용하여 파일 다운로드를 트리거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.