Мне нужно открыть файл PDF для пользователя, который нажимает кнопку загрузки.
Кнопка загрузки выполняет ajax-вызов сервлета, который получает данные из поля большого двоичного объекта в базе данных, содержащей содержимое PDF, и возвращает их в качестве ответа.
Что я могу сделать, чтобы пользователь мог загрузить ответ в виде файла PDF.
Код сервлета следующий:
response.setContentType("application/pdf");
oracle.sql.BLOB blob = (BLOB) rs.getBlob("MYPDF");
byte[] bytes = blob.getBytes(1, (int) blob.length());
ServletOutputStream servletOutputStream = response.getOutputStream();
servletOutputStream.write(bytes, 0, bytes.length);
servletOutputStream.flush();
servletOutputStream.close();
Я получаю длинный ответ, содержащий символы, подобные приведенным ниже, в AJAX, когда проверяю ошибку Fire для ответа.
a J 㔎 ji 2K y 2 q F f 9 G !% kɂ W mp) {h̕SNJ_A'2kjяR> WBE | = сор% wqǦ> ~ 1о㾙 9jB; aNx3`z ط ИСП $; N |; х ۇ; - CFMC (е M6K
Я не хочу отправлять страницу или открывать окно для сервлета с параметрами, отправленными для запроса, отображаемого в URL
Я также не хочу создавать файл на сервере.
Есть ли способ взять ответ сервлета, поступившего при вызове ajax, и отобразить его на странице или в Iframe, и браузер автоматически загрузит файл ...