Maison > Java > javaDidacticiel > Comment diffuser des fichiers à télécharger à l'aide des contrôleurs Spring ?

Comment diffuser des fichiers à télécharger à l'aide des contrôleurs Spring ?

DDD
Libérer: 2024-12-23 01:34:45
original
276 Les gens l'ont consulté

How to Stream Files for Download Using Spring Controllers?

Téléchargement de fichiers à partir de contrôleurs Spring

Lorsque vous êtes confronté à la nécessité de télécharger un PDF à partir d'un site Web, il est courant d'envisager de générer le fichier de manière dynamique en utilisant une combinaison de frameworks freemarker et PDF comme iText. Cependant, l'exploration d'options supplémentaires peut conduire à des solutions plus efficaces.

Une approche efficace consiste à utiliser les contrôleurs Spring pour gérer les téléchargements de fichiers. Pour y parvenir, vous pouvez exploiter la classe HttpServletResponse fournie par Spring. L'exemple de code suivant illustre comment configurer un contrôleur pour le téléchargement de fichiers :

@RequestMapping(value = "/files/{file_name}", method = RequestMethod.GET)
public void getFile(
    @PathVariable("file_name") String fileName, 
    HttpServletResponse response) {
    try {
      // get your file as InputStream
      InputStream is = ...;
      // copy it to response's OutputStream
      org.apache.commons.io.IOUtils.copy(is, response.getOutputStream());
      response.flushBuffer();
    } catch (IOException ex) {
      log.info("Error writing file to output stream. Filename was '{}'", fileName, ex);
      throw new RuntimeException("IOError writing file to output stream");
    }
}
Copier après la connexion

En utilisant Response.getOutputStream(), vous pouvez diffuser toutes les données, y compris les PDF générés, vers le client. De plus, vous pouvez spécifier le type de fichier en définissant Response.setContentType(). Pour les PDF, ce serait réponse.setContentType("application/pdf");.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal