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