[xwiki-users] Possible Bug with com.xpn.xwiki.doc.XWikiDocument.saveAttachmentContent v1.8
I'm executing some code on Save which attaches a PNG file to a document that was edited/saved. When I call docObj.saveAttachmentContent(attP, context); the attachment is save OK but any changes made to my document (ie. text changes) are not saved. If I comment out this line the text changes are saved, but off course not the attachment. Is this normal behaviour, what do the developers think? def imgAsBites = xwiki.getURLContentAsBytes("http://www.websequencediagrams.com/index.php "+umlImage, context); def attP = docObj.getAttachment(filenameToSavaAs); if(!attP) { attP = new com.xpn.xwiki.doc.XWikiAttachment(docObj,filenameToSavaAs); docObj.getAttachmentList().add(attP); println "NO Attach"; } attP.setContent(imgAsBites); docObj.saveAttachmentContent(attP, context); Regards Ajdin -------------------------------------------------------- NOTICE This message and any files transmitted with it is intended for the addressee only and may contain information that is confidential or privileged. Unauthorised use is strictly prohibited. If you are not the addressee, you should not read, copy, disclose or otherwise use this message, except for the purpose of delivery to the addressee. Any views or opinions expressed within this e-mail are those of the author and do not necessarily represent those of Coventry University.
Hi, This should generally work. Here is a typical Groovy script we often use to add attachments from File Uploads We call it this way for example: #set($doctitle = $xwiki.getUniquePageName("Space", "title")) #set($newdoc = $xwiki.getDocument("Space.${doctitle}")) ## attach files if necessary #set($attachgroovy = $xwiki.parseGroovyFromPage("XWiki.UploadGroovy")) #if($attachgroovy == "groovy_missingrights") #warning("no prog rights warning") #else #set($nb = $attachgroovy.addAttachments($newdoc, $context)) #if($nb == -10) #warning("no prog rights warning") #end $newdoc.save() or $newdoc.saveWithProgrammingRights(). #end --- import com.xpn.xwiki.doc.*; import com.xpn.xwiki.*; import com.xpn.xwiki.util.Util; import java.io.*; import java.util.*; public class Ajout { public int addAttachments(doc1, context1) { def doc = doc1.document; if (!context1.hasProgrammingRights()) return -10; def context = context1.context; if (context==null) return -10; def xwiki = context.getWiki(); int nb = 0; def fileupload = xwiki.getPlugin("fileupload",context) for (fileitem in fileupload.getFileItems(context)) { if (!fileitem.isFormField()) { def name = fileitem.fieldName byte[] data = fileupload.getFileItemData(name, context); if ((data!=null)&&(data.length>0)) { String fname = fileupload.getFileName(name, context); int i = fname.lastIndexOf("\\"); if (i==-1) i = fname.lastIndexOf("/"); def filename = fname.substring(i+1); filename = filename.replaceAll("\\+"," "); def attachment = doc.getAttachment(filename); if (attachment==null) { attachment = new XWikiAttachment(); doc.getAttachmentList().add(attachment); // Add the attachment to the document attachment.setDoc(doc); } attachment.setContent(data); attachment.setFilename(filename); // TODO: handle Author attachment.setAuthor(context1.user); doc.setAuthor(context1.user); doc.setCreator(context1.user); doc.saveAttachmentContent(attachment, context); nb++; } } } return nb; } } Ajdin Brandic a écrit :
I'm executing some code on Save which attaches a PNG file to a document that was edited/saved.
When I call docObj.saveAttachmentContent(attP, context); the attachment is save OK but any changes made to my document (ie. text changes) are not saved. If I comment out this line the text changes are saved, but off course not the attachment.
Is this normal behaviour, what do the developers think?
def imgAsBites = xwiki.getURLContentAsBytes("http://www.websequencediagrams.com/index.php "+umlImage, context); def attP = docObj.getAttachment(filenameToSavaAs); if(!attP) { attP = new com.xpn.xwiki.doc.XWikiAttachment(docObj,filenameToSavaAs); docObj.getAttachmentList().add(attP); println "NO Attach"; } attP.setContent(imgAsBites); docObj.saveAttachmentContent(attP, context);
Regards Ajdin
--------------------------------------------------------
NOTICE
This message and any files transmitted with it is intended for the addressee only and may contain information that is confidential or privileged. Unauthorised use is strictly prohibited. If you are not the addressee, you should not read, copy, disclose or otherwise use this message, except for the purpose of delivery to the addressee.
Any views or opinions expressed within this e-mail are those of the author and do not necessarily represent those of Coventry University. _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
-- Ludovic Dubost Blog: http://blog.ludovic.org/ XWiki: http://www.xwiki.com Skype: ldubost GTalk: ldubost
participants (2)
-
Ajdin Brandic -
Ludovic Dubost