Maison >Java >javaDidacticiel >Comment réparer les erreurs de téléchargement de fichiers dans votre service REST Spring Boot ?

Comment réparer les erreurs de téléchargement de fichiers dans votre service REST Spring Boot ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-28 04:40:01544parcourir

How to Fix File Download Errors in Your Spring Boot REST Service?

Résoudre les problèmes de téléchargement de fichiers dans le service Spring Boot Rest

Les téléchargements de fichiers à partir des services Spring Boot REST peuvent rencontrer des erreurs. Pour résoudre ces problèmes, nous examinons un code côté serveur fourni :

<code class="java">@RequestMapping(path="/downloadFile",method=RequestMethod.GET)
public  ResponseEntity<InputStreamReader> downloadDocument(...) {
    ...
    return ResponseEntity.ok()...body(i);
}</code>

Identification du problème

Le problème peut provenir de l'utilisation d'InputStreamReader, ce qui peut entraîner une erreur du navigateur. les téléchargements échouent.

Options de solution

  1. Utilisation d'une ressource InputStreamResource :
<code class="java">@RequestMapping(path="/download",method=RequestMethod.GET)
public ResponseEntity<Resource> download(...) {
    ...
    InputStreamResource resource = new InputStreamResource(new FileInputStream(file));
    return ResponseEntity.ok()...body(resource);
}</code>
  1. Utilisation d'un ByteArrayResource :
<code class="java">@RequestMapping(path="/download",method=RequestMethod.GET)
public ResponseEntity<Resource> download(...) {
    ...
    ByteArrayResource resource = new ByteArrayResource(Files.readAllBytes(path));
    return ResponseEntity.ok()...body(resource);
}</code>

Détails d'implémentation

  • InputStreamResource permet d'utiliser directement InputStream, mais est suggéré ne pas utiliser pour les gros fichiers.
  • ByteArrayResource charge l'intégralité du fichier en mémoire et est préférable pour les petits fichiers.

En implémentant l'une de ces solutions, le téléchargement du fichier devrait se dérouler avec succès à partir de le service Spring Boot REST.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn