Envoi d'un fichier de démarrage au printemps

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);
}

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=214573&siteId=1
conseillé
Classement