Bonjour,
je travaille sur une application utilisant SPRING et j'essaye d'écrire une chaine de caractère de près de 19000 caractères dans un fichiers CSV que je renvoie au client à l'aide de PrintWriter.write (response.getWriter().write) de l'objet HttpServletResponse. Voici le code :
Il se passe la chose curieuse suivante : lorsque la chaine de caractere domainString contient jusqu'à 8000 caractères, le fichier ".CSV" est bien envoyé au client sous le nom approprié et je peux l'ouvrir avec excel. Lorsque je depasse les 8000 caractères, je ne peux pas récupérer la réponse sous format ".CSV" mais la réponse est envoyé directement dans le browser sous la forme de chaine de caractère (domainString) affichée directement dans la page du browser avec l'URL "/getViewdomainReport.htm". C'est à dire que je dépasse la capacité d'un fichier renvoyé avec la méthode write. Je pense que le fait que ça soit renvoyé au format ".CSV" n'a pas d'importance. Il se passerai la même chose si c'était au format html ou autre. C'est surement la taille de la réponse qui est limitée. Que faire ? est-ce une histoire de buffer ? comment récupérer mes 19000 caractères dans mon fichier ".CSV" pour que je puisse l'ouvrir avec EXCEL ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public ModelAndView getViewdomainReport(HttpServletRequest request, HttpServletResponse response) throws Exception { // domainString est une chaine de caractères contenant près de 19000 caractères String domainString = reportManagementService.getViewdomainReport(domainRows,domain); String filename = domain.getDomainNameWithoutBlank()+".csv"; response.setContentType("text/csv"); response.getWriter().write(domainString); response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\""); return null; }
Si vous pouvez me venir en aide, merci d'avance.
Partager