youssef elhayani:
Je crée l'application de démarrage de printemps qui envoient un fichier en réponse du corps, à ce que j'utilise ce code:
FileSystemResource pdfFile = new FileSystemResource(outputFile);
return ResponseEntity
.ok()
.contentLength(pdfFile.contentLength())
.contentType(MediaType.parseMediaType("application/pdf"))
.body(new ByteArrayResource(IOUtils.toByteArray(pdfFile.getInputStream())));
Je me demande s'il y a une autre façon pour le fichier d'envoi autre que l'utilisation FileSystemResource?
S'il vous plaît, S'il y a toute suggestion, ne hésitez pas.
Je vous remercie !
DarkSmurf:
Ceci est une version simplifiée de la façon dont je le fais habituellement, mais il fait à peu près la même chose:
@RequestMapping(method = RequestMethod.GET, value = "/{id}")
public ResponseEntity<byte[]> getPdf(@PathVariable Long id) throws IOException {
final String filePath = pdfFilePathFinder.find(id);
final byte[] pdfBytes = Files.readAllBytes(Paths.get(filePath));
final HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/pdf"));
headers.setContentDispositionFormData("attachment", null);
headers.setCacheControl("no-cache");
return new ResponseEntity<>(pdfBytes, headers, HttpStatus.OK);
}