Nie mogę pobrać pliku przez ajax w wiosennym mvc bez pliku zapisu na serwerze [duplikat]
To pytanie ma już tutaj odpowiedź:
pobierz plik z ajax () POST Request via Spring MVC 5 odpowiedziNa jednej stronie znajduje się link do pobrania takiego pliku\myapp\controller\file?id=45
W kontrolerze
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();
}
To działa dobrze, ale na innej stronie
$.ajax({
type: 'POST',
url: '${url}',
data: {sdate: $('#date').val() },
success: function (data) {
alert(data)
},
error:function (xhr, ajaxOptions, thrownError) {
console.log("in error");
}
});
W konsoli kiedykolwiek powiedziałem
dostać plik---
pobierz plik --- OK
ale przeglądarka nic nie robi.
Dodaję sukcesalert(data)
do debugowania pokazuje zawartość binarną pliku PDF, taką jak:
% PDF-1,4% 3 0 obj <> strumień x ͝O $ q ) ޑ: U] E d A 1 ^ h ǃ \ t # ? X + RI J Y r F ?
Jak rozumieć program Explorer jest plikiem do pobrania?
Ze względu na brak zezwoleń nie mogę zapisać strony serwera plików