[cig-commits] r7891 - in cs/cigtg/trunk/cigtg-dev/CigPortal/cigportal/src/org/cig/portal: portlets util

wei at geodynamics.org wei at geodynamics.org
Fri Aug 24 14:54:46 PDT 2007


Author: wei
Date: 2007-08-24 14:54:46 -0700 (Fri, 24 Aug 2007)
New Revision: 7891

Modified:
   cs/cigtg/trunk/cigtg-dev/CigPortal/cigportal/src/org/cig/portal/portlets/CigMagPortlet.java
   cs/cigtg/trunk/cigtg-dev/CigPortal/cigportal/src/org/cig/portal/util/SimpleGridConstants.java
Log:
Added Sarah's file-upload to mag portlet.

Modified: cs/cigtg/trunk/cigtg-dev/CigPortal/cigportal/src/org/cig/portal/portlets/CigMagPortlet.java
===================================================================
--- cs/cigtg/trunk/cigtg-dev/CigPortal/cigportal/src/org/cig/portal/portlets/CigMagPortlet.java	2007-08-24 19:22:05 UTC (rev 7890)
+++ cs/cigtg/trunk/cigtg-dev/CigPortal/cigportal/src/org/cig/portal/portlets/CigMagPortlet.java	2007-08-24 21:54:46 UTC (rev 7891)
@@ -36,6 +36,11 @@
 import org.ietf.jgss.GSSCredential;
 import org.ogce.portlets.VelocityPortlet;
 
+//apache commons FileUpload
+import org.apache.commons.fileupload.portlet.*;
+import org.apache.commons.fileupload.*;
+import org.apache.commons.fileupload.disk.*;
+
 public class CigMagPortlet extends VelocityPortlet {
     /* This method is called whenever porlet is loaded */
     public void buildViewContext( RenderRequest req, RenderResponse res, Context aContext ) {
@@ -231,6 +236,55 @@
 		}
     	this.fillTemplate(aContext, req, res, error);
     }
+    
+    
+	    //added file upload handling
+	public void doMag_file_upload ( ActionRequest req, ActionResponse res, Context aContext ) throws Exception
+	{
+	    // clear error info
+	    String error = "";
+	    try {
+	        PortletSession mysession = req.getPortletSession(true);
+	        User user = (User) req.getAttribute(SportletProperties.PORTLET_USER);
+	        String uid = user.getUserID();
+	        String uploadfile = req.getParameter("cig_mag_parm_filename");
+	        if (uploadfile != null)
+	         {
+	    // Check that we have a file upload request
+  	          boolean isMultipart = PortletFileUpload.isMultipartContent(req);
+	          // Create a factory for disk-based file items
+	          DiskFileItemFactory factory = new DiskFileItemFactory();
+	          //Create a new file upload handler
+              PortletFileUpload upload = new PortletFileUpload(factory);
+	          // Parse the request
+	          List items = upload.parseRequest(req);
+	          // Check validity of directory file(s) will be written to
+	          String udir = this.getPortletContext().getRealPath("storage/"+uid+"/mag/datasets");
+	          System.out.println(udir);
+	          File usermagDir = new File(udir);
+	          if (!usermagDir.isDirectory()) throw new PortletException(udir+": mag portlet: user mag dataset dir is not a directory.");
+	           // Process the uploaded items
+	          Iterator iter = items.iterator();
+	          while (iter.hasNext())
+	           {
+	             FileItem item = (FileItem) iter.next();
+	             if (item.isFormField()){
+	             System.out.println("\nField = " + item.getFieldName());
+	             }
+	             else{
+	             String fileName = item.getName();
+	             System.out.println("\nNAME: " + fileName);
+	             File uploadedFile = new File(udir, fileName);
+	             item.write(uploadedFile);
+	             }
+	            }
+	         }
+	    }catch (Exception e) {
+	                        error += "CigPortalMagAction::doMag_file_upload: error\n"+e.toString() + "\n";
+	    }
+	    this.fillTemplate(aContext, req, res, error);
+	}
+	 
     public void doMag_view_dataset ( ActionRequest req, ActionResponse res, Context aContext ) throws Exception 
     {
         //clear error info

Modified: cs/cigtg/trunk/cigtg-dev/CigPortal/cigportal/src/org/cig/portal/util/SimpleGridConstants.java
===================================================================
--- cs/cigtg/trunk/cigtg-dev/CigPortal/cigportal/src/org/cig/portal/util/SimpleGridConstants.java	2007-08-24 19:22:05 UTC (rev 7890)
+++ cs/cigtg/trunk/cigtg-dev/CigPortal/cigportal/src/org/cig/portal/util/SimpleGridConstants.java	2007-08-24 21:54:46 UTC (rev 7891)
@@ -29,7 +29,8 @@
 	public static final String MagParamK = "cig_mag_parm_k";
 	public static final String MagParamR = "cig_mag_parm_r";
 	public static final String MagParamSite = "cig_mag_parm_site";
-	
+    public static final String MagParamFileUpload = "cig_mag_parm_filename"; //added for file uploading
+  	
 	public static final String MagId = "cig_mag_id";
 	
 	// service instance names



More information about the cig-commits mailing list