Download-Datei von Spring Rest-Controller
Ich versuche, eine Datei herunterladen, die durch eine Feder REST-Controller. Unten ist mein code -
@RequestMapping(value="/aaa",method=RequestMethod.GET,produces=MediaType.APPLICATION_OCTATE_STREAM_VALUE)
public ResponseEntity<byte[]> testMethod(@RequestParam("test") String test) {
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentDispositionFromData("attachment","testExcel.xlsx");
responseHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
File file = new File("C:\\testExcel.xlsx");
Path path = Paths.get(file.getAbsolutePath());
ByteArrayResource resource = new ByteArrayResource(Files.readAllbytes(path));
return new ResposeEntity<byte[]>(resource.getByteArray(),responseHeaders,HttpStatus.OK);
}
Dies wird als eine Schaltfläche klicken. Nachdem ich auf die Schaltfläche klicke passiert nichts. Beim Debuggen von java, konnte ich sehen, bytestream. In Entwickler-tools von Mozilla, konnte ich sehen, erfolgreichen HTTP-response(Antwort in bytestream, dass der excel-Datei). Als pro-Ressourcen im internet, browser sollte automatisch die Datei herunterladen, aber das ist nicht passiert.
Warum Download ist nicht passiert im browser? Was mehr muss ich tun, damit es funktioniert?
HINWEIS : Dies ist nur für POC Zweck. In der tatsächlichen Zeit, ich habe zu generieren, die excel-Datei aus der Datenbank details, durch Apache POI oder andere APIs.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die folgenden arbeiten für mich:
Was funktioniert in meinem Fall war der server sendet die folgenden header:
Also mein problem hatte damit zu tun, CSRF-Problem.
Ändern Sie den code wie folgt: