1 16 package com.blandware.atleap.webapp.action.core.contentResource.file; 17 18 import com.blandware.atleap.webapp.action.core.BaseAction; 19 import com.blandware.atleap.webapp.form.ContentResourceForm; 20 import com.blandware.atleap.webapp.form.core.UploadContentResourceForm; 21 import com.blandware.atleap.webapp.util.core.ResourceTypesManager; 22 import com.blandware.atleap.webapp.util.core.WebappConstants; 23 import org.apache.struts.action.ActionForm; 24 import org.apache.struts.action.ActionForward; 25 import org.apache.struts.action.ActionMapping; 26 import org.apache.struts.action.ActionMessage; 27 import org.apache.struts.action.ActionMessages; 28 import org.apache.struts.upload.FormFile; 29 import org.apache.commons.validator.GenericValidator; 30 31 import javax.servlet.http.HttpServletRequest ; 32 import javax.servlet.http.HttpServletResponse ; 33 34 53 public final class CallCreateFileAction extends BaseAction { 54 63 public ActionForward execute(ActionMapping mapping, ActionForm form, 64 HttpServletRequest request, HttpServletResponse response) throws Exception { 65 66 UploadContentResourceForm uploadContentResourceForm = (UploadContentResourceForm) request.getSession().getAttribute(WebappConstants.UPLOAD_CONTENT_RESOURCE_FORM_KEY); 67 if ( uploadContentResourceForm == null || uploadContentResourceForm.getFile() == null ) { 68 if ( log.isWarnEnabled() ) { 69 log.warn("Missing required attribute in session '" + WebappConstants.UPLOAD_CONTENT_RESOURCE_FORM_KEY + "'"); 70 } 71 ActionMessages errors = new ActionMessages(); 72 errors.add("missingResource", new ActionMessage("core.contentResource.errors.missingResource")); 73 saveErrors(request, errors); 74 saveToken(request); 75 return mapping.findForward("callCreateContentResource"); 76 } 77 FormFile formFile = uploadContentResourceForm.getFile(); 78 String fileName = formFile.getFileName(); 79 80 ContentResourceForm contentResourceForm = (ContentResourceForm) form; 81 82 String uri = "/"; 83 if ( GenericValidator.isBlankOrNull(contentResourceForm.getUri()) && request.getSession().getAttribute(WebappConstants.CONTENT_RESOURCES_CURRENT_PATH_KEY) != null ) { 84 uri = (String ) request.getSession().getAttribute(WebappConstants.CONTENT_RESOURCES_CURRENT_PATH_KEY) + "/"; 85 if ( !uri.endsWith("/") ) { 86 uri += "/"; 87 } 88 if (!"/".equals(uri) && !"".equals(uri)) { 90 if (!uri.startsWith("/")) { 91 uri = "/" + uri; 92 } 93 } 94 } 95 contentResourceForm.setUri(uri + fileName); 96 97 ResourceTypesManager resourceTypesManager = ResourceTypesManager.getInstance(request.getSession().getServletContext()); 98 String mimeType = resourceTypesManager.getMimeTypeByFileName(fileName); 99 100 if ( log.isDebugEnabled() ) { 101 log.debug("Uploaded formFile resource with mimeType=" + mimeType); 102 } 103 contentResourceForm.setMimeType(mimeType); 104 contentResourceForm.setSize(String.valueOf(formFile.getFileData().length)); 105 request.getSession().setAttribute(WebappConstants.CONTENT_FILE_NEW_FILENAME_KEY, formFile.getFileName()); 106 107 saveToken(request); 108 return mapping.findForward("createFile"); 109 } 110 } | Popular Tags |