Index: lams_tool_forum/web/WEB-INF/classes/org/lamsfoundation/lams/tool/forum/actions/ForumAction.java =================================================================== diff -u -rdb911c3802e8b764988d3e9cc741583085d73273 -r99cfb2b5001eb3183cc5a43146b6655c65d68efd --- lams_tool_forum/web/WEB-INF/classes/org/lamsfoundation/lams/tool/forum/actions/ForumAction.java (.../ForumAction.java) (revision db911c3802e8b764988d3e9cc741583085d73273) +++ lams_tool_forum/web/WEB-INF/classes/org/lamsfoundation/lams/tool/forum/actions/ForumAction.java (.../ForumAction.java) (revision 99cfb2b5001eb3183cc5a43146b6655c65d68efd) @@ -10,11 +10,13 @@ import org.lamsfoundation.lams.tool.forum.service.ForumManager; import org.lamsfoundation.lams.tool.forum.forms.ForumForm; import org.lamsfoundation.lams.tool.forum.forms.MessageForm; +import org.lamsfoundation.lams.tool.forum.util.ContentHandler; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.File; import java.util.*; /** @@ -172,13 +174,16 @@ return mapping.findForward("success"); } - public ActionForward deleteAttachment(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws PersistenceException { + public ActionForward deleteAttachment(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { ActionForward forward = new ActionForward(); forward.setPath(mapping.getInput()); String fileName = (String) request.getParameter("fileName"); ForumForm forumForm = (ForumForm) form; Map attachments = forumForm.getAttachments(); Attachment attachment = (Attachment) attachments.remove(fileName); + ContentHandler handler = ContentHandler.getInstance(); + //File file = ContentHandler.getFile(attachment.getName(), attachment.getUuid()); + ContentHandler.deleteFile(attachment.getUuid()); if (attachment.getId() !=null) { this.forumManager.deleteForumAttachment(attachment.getId()); } Index: lams_tool_forum/web/WEB-INF/classes/org/lamsfoundation/lams/tool/forum/forms/ForumForm.java =================================================================== diff -u -rdb911c3802e8b764988d3e9cc741583085d73273 -r99cfb2b5001eb3183cc5a43146b6655c65d68efd --- lams_tool_forum/web/WEB-INF/classes/org/lamsfoundation/lams/tool/forum/forms/ForumForm.java (.../ForumForm.java) (revision db911c3802e8b764988d3e9cc741583085d73273) +++ lams_tool_forum/web/WEB-INF/classes/org/lamsfoundation/lams/tool/forum/forms/ForumForm.java (.../ForumForm.java) (revision 99cfb2b5001eb3183cc5a43146b6655c65d68efd) @@ -4,6 +4,8 @@ import org.lamsfoundation.lams.tool.forum.persistence.Attachment; import org.lamsfoundation.lams.tool.forum.util.ForumConstants; import org.lamsfoundation.lams.tool.forum.util.FileUtils; +import org.lamsfoundation.lams.tool.forum.util.ContentHandler; +import org.lamsfoundation.lams.contentrepository.NodeKey; import org.apache.struts.upload.FormFile; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionMapping; @@ -32,8 +34,8 @@ protected boolean lockWhenFinished; protected boolean forceOffline; protected boolean allowAnnomity; + protected ContentHandler contentHander; - private static Logger logger = Logger.getLogger(ForumForm.class.getName()); public ForumForm() { @@ -101,38 +103,45 @@ public ActionErrors validate(ActionMapping mapping, javax.servlet.http.HttpServletRequest request) { ActionErrors errors = super.validate(mapping, request); - try{ + ActionError ae; + ContentHandler contentHandler; + try{ // if ("".equals(forum.getTitle())) { // ActionError error = new ActionError("error.valueReqd"); // errors.add("forum.title", error); // } + try { + contentHandler = ContentHandler.getInstance(); + } catch (Exception e) { + ae = new ActionError("error.inputFileTooLarge"); + errors.add("onlineFile", ae); + throw e; + } if (onlineFile != null && !(onlineFile.getFileName().trim().equals(""))) { if (onlineFile.getFileSize() > ForumConstants.MAX_FILE_SIZE) { - ActionError ae = new ActionError("error.inputFileTooLarge"); + ae = new ActionError("error.inputFileTooLarge"); errors.add("onlineFile", ae); } else { String fileName = onlineFile.getFileName(); + NodeKey node = ContentHandler.uploadFile(onlineFile.getInputStream(), fileName, onlineFile.getContentType()); Attachment attachment = new Attachment(); - File afile = FileUtils.getFile(fileName, onlineFile.getInputStream()); attachment.setName(fileName); - attachment.setContentType(onlineFile.getContentType()); - attachment.setData(FileUtils.getBytes(afile)); + attachment.setUuid(node.getUuid()); attachment.setType(Attachment.TYPE_ONLINE); attachments.put(fileName, attachment); onlineFile = null; } } if (offlineFile != null && !(offlineFile.getFileName().trim().equals(""))) { if (offlineFile.getFileSize() > ForumConstants.MAX_FILE_SIZE) { - ActionError ae = new ActionError("error.inputFileTooLarge"); + ae = new ActionError("error.inputFileTooLarge"); errors.add("offlineFile", ae); } else { String fileName = offlineFile.getFileName(); + NodeKey node = ContentHandler.uploadFile(onlineFile.getInputStream(), fileName, onlineFile.getContentType()); Attachment attachment = new Attachment(); - File afile = FileUtils.getFile(fileName, offlineFile.getInputStream()); attachment.setName(fileName); - attachment.setContentType(offlineFile.getContentType()); - attachment.setData(FileUtils.getBytes(afile)); + attachment.setUuid(node.getUuid()); attachment.setType(Attachment.TYPE_OFFLINE); attachments.put(fileName, attachment); offlineFile = null;