Bonjour à tous,
Suite à mon post d'hier où j'ai fais un monologue , me revoici avec deux questions qui sont liées.
Comme je le disais hier, mon but est de lancer la génération de deux fichiers TXT par sélection dans mon tableau et de les envoyer au client.
J'arrive à envoyer un fichier mais pas plus...
Voici le code utilisé pour envoyé le fichier (celui de la faq) :
et mon action :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public void openTxt(File txtFile, HttpServletResponse res) { String filename = txtFile.getName(); res.setContentType("multipart/zip"); res.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\";"); res.setContentLength((int)txtFile.length()); try { OutputStream os = res.getOutputStream(); FileInputStream stream = new FileInputStream(txtFile); BufferedInputStream bis = new BufferedInputStream(stream); InputStream is = new BufferedInputStream(bis); int count; byte buf[] = new byte[4096]; while ((count = is.read(buf)) > -1) { os.write(buf, 0, count); } is.close(); os.close(); } catch (Exception ex) { ex.printStackTrace(); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception { DynaValidatorForm monForm = (DynaValidatorForm)form; File fileEcritures = null; File fileComptes = null; try { fileEcritures = FileManager.getInstance().genererEcritures(); // Ouvre le fichier txt ExportUtilities.getInstance().openTxt(fileEcritures, res); fileComptes = FileManager.getInstance().genererComptes(); // Ouvre le fichier txt ExportUtilities.getInstance().openTxt(fileComptes, res); } catch(Exception exc) { logger.error(exc.getMessage(), exc); } return null; }
Mes deux problèmes sont donc :
- Comment envoyer plusieurs fichiers (en même temps) à un client ? Si une solution facile à mettre en oeuvre est de faire un zip c'est possible...
- Comment effectuer une autre action après avoir effectuer cet envoi ? Ou dois je effectuer l'action avant l'envoi ?
Merci de votre aide car là je déprime un peu
Partager