Bonjour à tous,
La question est plutôt simple.
J'utilise Spring Boot et un objet InputStreamResource pour envoyer un fichier via un service Rest.
Voici la méthode :
Cet exemple est le plus simple qu'on peut trouver un peu partout sur le web (stackoverflow, tutoriels divers...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @RequestMapping(value = "/download", method = RequestMethod.GET) public ResponseEntity<InputStreamResource> downloadFile() { InputStream fileStream = getStream(); if (sampleStream != null) { return ResponseEntity.ok().contentType(MediaType.parseMediaType("application/octet-stream")) .body(new InputStreamResource(fileStream)); } else { // Else block } }
Mais une question demeure dans mon esprit :
Est-ce-que l'objet InputStreamResource ferme automatiquement le flux fileStream après l'envoi ?
Je n'ai trouvé aucune ressource sur le web qui traite ce sujet donc j'imagine que c'est le cas et que je n'ai pas à m'en préoccuper. Mais j'aimerais avoir l'avis de la communauté.
PS: si j'entoure mon return par un try/catch/finally et que je ferme mon flux dans ce finally, un exception est levée (stream closed).
Merci pour vos commentaires.
Partager