AnsweredAssumed Answered

Comment faire un téléchargement de plusieurs fichiers sous format zip?

Question asked by nounou7034 on Dec 22, 2016
Latest reply on Dec 26, 2016 by ycoulon

Bonjour à tous,

 

Je veux faire un téléchargement de plusieurs fichier à partir d'une liste. Cette dernière comporte des fichiers qui se trouvent sous Alfresco. J'ai réussi à télécharger un seul document. Mais lorsqu'il s'agit d'appliquer cette action sur plusieurs fichiers sélectionnés simultanément il s'avère que c'est impossible.
Donc, comme solution alternante, je voudrais zipper les fichiers sélectionnés en un seul fichier zip et le téléchargé en suite. Le problème est que en sélectionnant un fichier je peux seulement avoir son nom et son Node_Id et dans tous les exemple que j'ai trouvé je dois passé par le chemin du fichier ( qui est un chemin physique d’habitude).

Est ce que quelqu'un peux m'aider?
 

Voici un exemple de code que j'ai trouvé et que je veux l'adapter à ma fonction:

     public void doGet(HttpServletRequest request, HttpServletResponse response)                throws ServletException, IOException {            // Set the content type based to zip           response.setContentType("Content-type: text/zip");           response.setHeader("Content-Disposition",                     "attachment; filename=mytest.zip");            // List of files to be downloaded           List files = new ArrayList();           files.add(new File("C:/first.txt"));           files.add(new File("C:/second.txt"));           files.add(new File("C:/third.txt"));            ServletOutputStream out = response.getOutputStream();           ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(out));            for (File file : files) {                 System.out.println("Adding " + file.getName());                zos.putNextEntry(new ZipEntry(file.getName()));                 // Get the file                FileInputStream fis = null;                try {                     fis = new FileInputStream(file);                 } catch (FileNotFoundException fnfe) {                                          zos.write(("ERRORld not find file " + file.getName())                               .getBytes());                     zos.closeEntry();                     System.out.println("Couldfind file "                               + file.getAbsolutePath());                     continue;                }                 BufferedInputStream fif = new BufferedInputStream(fis);                 // Write the contents of the file                int data = 0;                while ((data = fif.read()) != -1) {                     zos.write(data);                }                fif.close();                 zos.closeEntry();                System.out.println("Finishedng file " + file.getName());           }            zos.close();      } }

Attachments

Outcomes