Отображение строки PDF, переданной с сервера в JavaScript

Я пытаюсь отобразить PDF, который был написан в HTTPServletResponse в новом окне через JavaScript.

@RequestMapping(method = RequestMethod.POST, params = {"action=previewPDF"})
public void view(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException {

SessionInfo sessionInfo = (SessionInfo) httpServletRequest.getAttribute(SessionInfo.SESSION_INFO_REQUEST_KEY);

String fileDestination = "C:/test.pdf";
File f = new File(fileDestination);
if (f.isFile()) {
  httpServletResponse.reset();
  httpServletResponse.setContentType("application/pdf");
  httpServletResponse.setHeader("Content-Disposition", "inline; filename="+fileDestination+";");
  FileUtils.copyFile(f, httpServletResponse.getOutputStream());
  httpServletResponse.getOutputStream().close();
}    

}

В javascript:

success : function(result) {
            alert("Success");
            console.log(result);
            window.open("data:application/pdf;base64" + escape(result.responseText));
        }

Он переходит в функцию успеха, но пытается отобразить ссылку на новой вкладке, но я получаю сообщение о том, что сайт не может быть достигнут.

Ссылка выглядит так:

data:application/pdf;base64%25PDF-1.3%0A%25%uFFFD%uC3E2%0A30%200%20obj%0A%3C%3C/Length%2031%200%20R/Filter%20/FlateDecode%3E%3E%0Astream%0Ax%uFFFD%uF......

Кто-нибудь сможет предложить, где я ошибаюсь?

javascript,java,http,pdf,servlets,

0

Ответов: 0

Отображение строки PDF, переданной с сервера в JavaScript

Я пытаюсь отобразить PDF, который был написан в HTTPServletResponse в новом окне через JavaScript.

@RequestMapping(method = RequestMethod.POST, params = {"action=previewPDF"})
public void view(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws IOException {

SessionInfo sessionInfo = (SessionInfo) httpServletRequest.getAttribute(SessionInfo.SESSION_INFO_REQUEST_KEY);

String fileDestination = "C:/test.pdf";
File f = new File(fileDestination);
if (f.isFile()) {
  httpServletResponse.reset();
  httpServletResponse.setContentType("application/pdf");
  httpServletResponse.setHeader("Content-Disposition", "inline; filename="+fileDestination+";");
  FileUtils.copyFile(f, httpServletResponse.getOutputStream());
  httpServletResponse.getOutputStream().close();
}    

}

В javascript:

success : function(result) {
            alert("Success");
            console.log(result);
            window.open("data:application/pdf;base64" + escape(result.responseText));
        }

Он переходит в функцию успеха, но пытается отобразить ссылку на новой вкладке, но я получаю сообщение о том, что сайт не может быть достигнут.

Ссылка выглядит так:

data:application/pdf;base64%25PDF-1.3%0A%25%uFFFD%uC3E2%0A30%200%20obj%0A%3C%3C/Length%2031%200%20R/Filter%20/FlateDecode%3E%3E%0Astream%0Ax%uFFFD%uF......

Кто-нибудь сможет предложить, где я ошибаюсь?

00JavaScript, Java, HTTP, PDF, сервлеты,
Похожие вопросы