복붙노트

[SPRING] 나는 서버에서 파일을 저장하지 않고 봄 mvc에서 아약스를 통해 파일을 다운로드 할 수 없다 [중복]

SPRING

나는 서버에서 파일을 저장하지 않고 봄 mvc에서 아약스를 통해 파일을 다운로드 할 수 없다 [중복]

한 페이지에 \ myapp \ controller \ file 같은 파일을 다운로드 할 수있는 링크가 있습니까? id = 45

컨트롤러 있음

        InputStream stream = null;          
        byte [] buffer =someService.getFile(somedata); 
        stream = new ByteArrayInputStream(buffer);
        System.out.println("get file---");
         response.addHeader("Content-Disposition","attachment; filename=report.pdf");

        try {
            IOUtils.copy(stream, response.getOutputStream());
                System.out.println("get file---OK");
        } catch (Exception e) {
            e.printStackTrace();
        }

이것은 잘 작동하지만 다른 페이지에서

         $.ajax({
                type: 'POST',
                url: '${url}',                  
                data: {sdate: $('#date').val() },
                success: function (data) {
                    alert(data)                     
                },
                error:function (xhr, ajaxOptions, thrownError) {
                    console.log("in error");
                } 
            });

콘솔에서 말하기

그러나 브라우저는 아무 것도하지 않습니다.

나는 성공 경고 (데이터)를 디버그에 추가, 그것은 PDF 파일의 바이너리 내용을 보여줍니다 :

이제 탐험가가 다운로드 할 파일을 어떻게 이해합니까?

허가가 부족하여 파일 서버 측을 저장할 수 없습니다.

해결법

  1. ==============================

    1.아약스를 사용하여 파일을 다운로드 할 수 없습니다.

    아약스를 사용하여 파일을 다운로드 할 수 없습니다.

    사용

  2. from https://stackoverflow.com/questions/20860269/i-can-not-download-file-via-ajax-in-spring-mvc-without-save-file-in-server by cc-by-sa and MIT license