Modifications pour le document Download Attachments
Modifié par Paul Libbrecht (admin) le 2021/12/12 21:39
modifié par Paul Libbrecht (admin)
sur 2016/08/19 20:10
sur 2016/08/19 20:10
modifié par Paul Libbrecht (admin)
sur 2016/08/18 23:48
sur 2016/08/18 23:48
Commentaire de modification :
Il n'y a aucun commentaire pour cette version
Résumé
Détails
- Propriétés de la Page
-
- Contenu
-
... ... @@ -10,33 +10,25 @@ 10 10 def page = request.getParameter("page"); 11 11 Document pageDoc = null; 12 12 try { 13 - 13 + pageDoc = xwiki.getDocument(page); 14 14 } catch(Exception ex) {} 15 15 16 16 if(page && pageDoc) { 17 17 System.err.println("Should download attachments from page ${pageDoc}."); 18 - def uncompressedMimes = ["image/jpeg", "image/png", "application/zip"]; 19 - response.setContentType("application/zip"); 20 - String name = pageDoc.getName(); 21 - if(name=="WebHome") name = pageDoc.getSpace(); 22 - response.addHeader("Content-Disposition", "attachment; filename=${name}_attachments.zip"); 18 + //System.err.println("content: " + pageDoc.getContent()); 19 + response.setContentType("application/zip; filename=${pageDoc.getName()}_attachments.zip"); 20 + response.addHeader("Content-Disposition", "attachment"); 23 23 24 24 25 25 ZipOutputStream out = null; 26 - System.err.println("Attachments list 's size: ${pageDoc.document.attachmentList.size()}.");24 + System.err.println("Attachments list: ${pageDoc.document.attachmentList.size()}."); 27 27 try { 28 28 out = new ZipOutputStream(response.getOutputStream()); 29 29 for(Attachment att in pageDoc.getAttachmentList()) { 30 30 System.err.println("Outputting " + att.filename); 31 31 ZipEntry entry = new ZipEntry(att.filename); 32 - entry.setTime(att.getDate().getTime()); 33 - entry.setSize(att.filesize); 34 - if(uncompressedMimes.contain(att.mimeType)) 35 - entry.setMethod(ZipEntry.STORED); 36 - else 37 - entry.setMethod(ZipEntry.DEFLATED); 38 38 out.putNextEntry(entry); 39 - IOUtils.copy(att.contentInputStream, out , 5*1024*1024);31 + IOUtils.copy(att.contentInputStream, out); 40 40 } 41 41 } catch (Exception ex) { 42 42 ex.printStackTrace(); ... ... @@ -48,8 +48,8 @@ 48 48 49 49 } else { 50 50 println(""" 51 -= Download Attachments Macro=52 - Useas((({{downloadAttachments/}})))sosee alistofattachments.43 += Download Attachments = 44 +call this page with a parameter ``page`` set to the name of the page, it will put all attachments of that page in a single zip and download it. 53 53 """); 54 54 } 55 55