Я не могу скачать файл через AJAX весной MVC без сохранения файла на сервере [дубликат]
На этот вопрос уже есть ответ здесь:
скачать файл с помощью ajax () POST-запроса через Spring MVC 5 ответовНа одной странице есть ссылка для скачивания файла вроде\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");
}
});
В консоли когда-нибудь скажу
получить файл---
получить файл --- ОК
но браузер ничего не делает.
Я добавляю в успехalert(data)
для отладки он показывает двоичное содержимое файла PDF, например:
% PDF-1,4% 3 0 объектов <>поток x ͝O $ q ) ޑ: U] EdA1 ^ h!S #?X +RIJYrF?
Теперь, как проводник понимает файл для загрузки?
Из-за отсутствия разрешений не могу сохранить файловый сервер на стороне