1 16 package com.blandware.atleap.webapp.action.core.contentResource.image; 17 18 import com.blandware.atleap.webapp.action.core.BaseAction; 19 import com.blandware.atleap.webapp.form.core.ImageForm; 20 import com.blandware.atleap.webapp.form.core.UploadContentResourceForm; 21 import com.blandware.atleap.webapp.util.core.ImageUtil; 22 import com.blandware.atleap.webapp.util.core.ResourceTypesManager; 23 import com.blandware.atleap.webapp.util.core.WebappConstants; 24 import org.apache.commons.validator.GenericValidator; 25 import org.apache.struts.action.ActionForm; 26 import org.apache.struts.action.ActionForward; 27 import org.apache.struts.action.ActionMapping; 28 import org.apache.struts.action.ActionMessage; 29 import org.apache.struts.action.ActionMessages; 30 import org.apache.struts.upload.FormFile; 31 32 import javax.imageio.IIOImage ; 33 import javax.servlet.http.HttpServletRequest ; 34 import javax.servlet.http.HttpServletResponse ; 35 36 55 public final class CallCreateImageAction extends BaseAction { 56 65 public ActionForward execute(ActionMapping mapping, ActionForm form, 66 HttpServletRequest request, HttpServletResponse response) throws Exception { 67 68 UploadContentResourceForm uploadContentResourceForm = (UploadContentResourceForm) request.getSession().getAttribute(WebappConstants.UPLOAD_CONTENT_RESOURCE_FORM_KEY); 69 if ( uploadContentResourceForm == null || uploadContentResourceForm.getFile() == null ) { 70 if ( log.isWarnEnabled() ) { 71 log.warn("Missing required attribute in session '" + WebappConstants.UPLOAD_CONTENT_RESOURCE_FORM_KEY + "'"); 72 } 73 ActionMessages errors = new ActionMessages(); 74 errors.add("missingResource", new ActionMessage("core.contentResource.errors.missingResource")); 75 saveErrors(request, errors); 76 saveToken(request); 77 return mapping.findForward("callCreateContentResource"); 78 } 79 80 FormFile formFile = uploadContentResourceForm.getFile(); 81 String fileName = formFile.getFileName(); 82 83 ImageForm imageForm = (ImageForm) form; 84 String uri = "/"; 85 if ( GenericValidator.isBlankOrNull(imageForm.getUri()) && request.getSession().getAttribute(WebappConstants.CONTENT_RESOURCES_CURRENT_PATH_KEY) != null ) { 86 uri = (String ) request.getSession().getAttribute(WebappConstants.CONTENT_RESOURCES_CURRENT_PATH_KEY) + "/"; 87 if ( !uri.endsWith("/") ) { 88 uri += "/"; 89 } 90 if (!"/".equals(uri) && !"".equals(uri)) { 92 if (!uri.startsWith("/")) { 93 uri = "/" + uri; 94 } 95 } 96 } 97 imageForm.setUri(uri + fileName); 98 99 ResourceTypesManager resourceTypesManager = ResourceTypesManager.getInstance(request.getSession().getServletContext()); 100 String mimeType = resourceTypesManager.getMimeTypeByFileName(fileName); 101 102 imageForm.setMimeType(mimeType); 103 imageForm.setSize(String.valueOf(formFile.getFileData().length)); 104 request.getSession().setAttribute(WebappConstants.CONTENT_IMAGE_NEW_FILENAME_KEY, formFile.getFileName()); 105 106 107 try { 108 IIOImage source = ImageUtil.decodeImage(formFile.getFileData(), mimeType); 109 imageForm.setWidth(String.valueOf(source.getRenderedImage().getWidth())); 110 imageForm.setHeight(String.valueOf(source.getRenderedImage().getHeight())); 111 } catch ( Exception ex ) { 112 if ( formFile != null ) { 113 formFile.destroy(); 114 } 115 request.getSession().removeAttribute(WebappConstants.UPLOAD_CONTENT_RESOURCE_FORM_KEY); 116 117 ActionMessages errors = new ActionMessages(); 118 errors.add("contentResourceCorruptedData", new ActionMessage("core.contentResource.errors.corruptedData")); 119 saveErrors(request, errors); 120 return mapping.findForward("callCreateContentResource"); 121 } 122 123 saveToken(request); 124 return mapping.findForward("createImage"); 125 } 126 } | Popular Tags |