1 16 package com.blandware.atleap.webapp.action.core.contentResource.file; 17 18 import com.blandware.atleap.common.Constants; 19 import com.blandware.atleap.model.core.ContentResource; 20 import com.blandware.atleap.service.core.ContentResourceManager; 21 import com.blandware.atleap.webapp.action.core.BaseAction; 22 import com.blandware.atleap.webapp.form.ContentResourceForm; 23 import com.blandware.atleap.webapp.form.core.UploadContentResourceForm; 24 import com.blandware.atleap.webapp.util.core.ResourceTypesManager; 25 import com.blandware.atleap.webapp.util.core.WebappConstants; 26 import com.blandware.atleap.webapp.util.core.WebappUtil; 27 import org.apache.struts.action.ActionForm; 28 import org.apache.struts.action.ActionForward; 29 import org.apache.struts.action.ActionMapping; 30 import org.apache.struts.action.ActionMessage; 31 import org.apache.struts.action.ActionMessages; 32 import org.apache.struts.upload.FormFile; 33 34 import javax.servlet.http.HttpServletRequest ; 35 import javax.servlet.http.HttpServletResponse ; 36 37 57 public final class CallUpdateFileAction extends BaseAction { 58 67 public ActionForward execute(ActionMapping mapping, ActionForm form, 68 HttpServletRequest request, HttpServletResponse response) throws Exception { 69 70 Long contentResourceId = null; 71 if ( ((ContentResourceForm) form).getId() != null ) { 72 contentResourceId = Long.valueOf(((ContentResourceForm) form).getId()); 73 } else if ( request.getParameter("contentResourceId") != null ) { 74 contentResourceId = Long.valueOf(request.getParameter("contentResourceId")); 75 } else if ( request.getAttribute(WebappConstants.CONTENT_RESOURCE_ID_KEY) != null ) { 76 contentResourceId = (Long ) request.getAttribute(WebappConstants.CONTENT_RESOURCE_ID_KEY); 77 } else { 78 if ( log.isWarnEnabled() ) { 79 log.warn("Missing required parameter 'contentResourceId'"); 80 } 81 return mapping.findForward("listContentResources"); 82 } 83 84 ContentResourceManager contentResourceManager = (ContentResourceManager) getBean(Constants.CONTENT_RESOURCE_MANAGER_BEAN); 85 ContentResource file = contentResourceManager.retrieveContentResource(contentResourceId); 86 if ( file == null ) { 87 ActionMessages errors = new ActionMessages(); 89 errors.add("fileNotFound", new ActionMessage("core.contentResource.file.errors.notFound")); 90 saveErrors(request, errors); 91 return mapping.findForward("listContentResources"); 92 } 93 94 ContentResourceForm contentResourceForm = (ContentResourceForm) form; 95 WebappUtil.copyProperties(contentResourceForm, file, request); 96 97 String uri = file.getUri(); 99 if ( uri.startsWith(Constants.RESOURCES_URI_PREFIX) ) { 100 uri = uri.substring(Constants.RESOURCES_URI_PREFIX.length()); 101 } 102 contentResourceForm.setUri(uri); 103 104 ResourceTypesManager resourceTypesManager = ResourceTypesManager.getInstance(request.getSession().getServletContext()); 105 106 UploadContentResourceForm uploadContentResourceForm = (UploadContentResourceForm) request.getSession().getAttribute(WebappConstants.UPLOAD_CONTENT_RESOURCE_FORM_KEY); 107 FormFile formFile = null; 108 if ( uploadContentResourceForm != null ) { 109 formFile = uploadContentResourceForm.getFile(); 110 } 111 if ( formFile != null && formFile.getFileName() != null && formFile.getFileName().trim().length() > 0 && formFile.getFileSize() > 0 ) { 112 String fileName = formFile.getFileName(); 113 String mimeType = resourceTypesManager.getMimeTypeByFileName(fileName); 114 request.getSession().setAttribute(WebappConstants.CONTENT_FILE_NEW_MIMETYPE_KEY, mimeType); 115 request.getSession().setAttribute(WebappConstants.CONTENT_FILE_NEW_SIZE_KEY, new Long (formFile.getFileData().length)); 116 request.getSession().setAttribute(WebappConstants.CONTENT_FILE_NEW_FILENAME_KEY, formFile.getFileName()); 117 request.getSession().setAttribute(WebappConstants.CONTENT_FILE_NEW_MIMETYPE_IS_SET_KEY, Boolean.TRUE); 118 } else { 119 request.getSession().removeAttribute(WebappConstants.CONTENT_FILE_NEW_MIMETYPE_KEY); 120 request.getSession().removeAttribute(WebappConstants.CONTENT_FILE_NEW_SIZE_KEY); 121 request.getSession().removeAttribute(WebappConstants.CONTENT_FILE_NEW_FILENAME_KEY); 122 request.getSession().removeAttribute(WebappConstants.CONTENT_FILE_NEW_MIMETYPE_IS_SET_KEY); 123 } 124 125 saveToken(request); 126 return mapping.findForward("updateFile"); 127 } 128 129 } | Popular Tags |