12-22-2016 03:56 AM
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(); } }
12-24-2016 05:42 AM
Bonjour,
J'ai déplacé ton contenu dans l'espace dédié à la langue Française.
Quel version d'Alfresco utilise tu ?
Les version récentes d'Alfresco dispose déjà d'une action pour cela. Elle se trouve dans le menu "Eléments sélectionnés..." :
Yann
12-24-2016 02:57 PM
merci beaucoup pour votre réponse. La version d'alfresco que j'utilise c'est alfresco 4.2.6.
Oui j'ai déjà vu cette option dans les versions récentes d'alfresco. mais , je veux faire cette action avec la programmation.
12-26-2016 03:40 AM
Bonjour,
Vous allez avoir besoin d'une fonction qui à partir d'une liste de NodeRef va créer le fichier ZIP puis de renvoyé ce fichier via un webscript.
Vous pouvez parcourir les sources ou de share afin de retrouver le code qui se charge de l'action mentionné dans ma réponse précédente.
Yann
12-26-2016 04:00 AM
Bonjour Yann,
J'apprécie énormément votre réponse. Cependant, les webscripts proposés sont applicable pour les versions d'Alfresco 5 et plus? Donc ils ne sont pas compatible avec ma version actuelle.
12-26-2016 04:05 AM
Les sources actuelles sont effectivement celle de la version 5.
Cependant github propose également les sources des anciennes versions.
De plus je ne pense pas qu'il y'ai eu beaucoup de changement de ce côté la.
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.