télécharger un fichier depuis le service de repos de démarrage Spring
Je suis en train de télécharger un fichier à partir d'un Printemps de démarrage service rest.
@RequestMapping(path="/downloadFile",method=RequestMethod.GET)
@Consumes(MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<InputStreamReader> downloadDocument(
String acquistionId,
String fileType,
Integer expressVfId) throws IOException {
File file2Upload = new File("C:\\Users\\admin\\Desktop\\bkp\.rtf");
HttpHeaders headers = new HttpHeaders();
headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
headers.add("Pragma", "no-cache");
headers.add("Expires", "0");
InputStreamReader i = new InputStreamReader(new FileInputStream(file2Upload));
System.out.println("The length of the file is : "+file2Upload.length());
return ResponseEntity.ok().headers(headers).contentLength(file2Upload.length())
.contentType(MediaType.parseMediaType("application/octet-stream"))
.body(i);
}
Quand j'ai essayé de télécharger le fichier depuis le navigateur, il commence le téléchargement, mais échoue toujours. Il n'y a rien de mal avec le service qui est à l'origine de la télécharger à l'échec?
source d'informationauteur kiran
Vous devez vous connecter pour publier un commentaire.
Option 1 à l'aide d'un InputStreamResource
Option2 que la documentation de la InputStreamResource suggère, à l'aide d'un ByteArrayResource:
Vous pouvez également obtenir le même copier les octets de la réponse OutputStream de l'InputStream. Pour cela définir le Contrôleur avec la suite -
HttpServletResponse comme argument de la méthode.
est un en-tête indiquant si le contenu est prévu pour être affiché
en ligne dans le navigateur, qui est, comme une page Web ou dans le cadre d'un site Web
page, ou une pièce jointe, qui est téléchargé et enregistré localement. Ensemble
le Content-Disposition en conséquence. Trouver le Type MIME du fichier
pour être téléchargé. Cela peut être d'application/pdf,
text/html,application/xml etc.
application/octet-stream. Dans ce cas, le navigateur affiche la Enregistrer
Comme
Copier les octets de la réponse
OutputStream
de laInputStream
.De référence - Printemps De Démarrage Exemple De Téléchargement De Fichier