View Javadoc

1   package org.astrogrid.portal.myspace.acting.framework;
2   
3   import java.io.InputStream;
4   import java.io.OutputStream;
5   import java.util.Map;
6   
7   /***
8    * Upload a file into MySpace.
9    * 
10   * @author peter.shillan
11   */
12  public class UploadHandler extends AbstractMySpaceHandler {
13  
14    /***
15     * @see org.astrogrid.portal.myspace.acting.framework.AbstractMySpaceHandler#AbstractMySpaceHandler(org.astrogrid.portal.myspace.acting.framework.ContextWrapper)
16     * @param context
17     */
18    public UploadHandler(ContextWrapper context) {
19      super(context);
20    }
21  
22    /***
23     * Upload a file into MySpace.
24     * 
25     * @see org.astrogrid.portal.myspace.acting.framework.AbstractMySpaceHandler#executeTemplateMethod(java.util.Map)
26     */
27    protected void executeTemplateMethod(Map results) throws Throwable {
28      String dest = context.getParameter(MySpaceHandler.PARAM_DEST);
29      String fileName = context.getParameter(MySpaceHandler.PARAM_FILE);
30      
31      if(dest != null && dest.length() > 0 &&
32          fileName != null && fileName.length() > 0) {
33        
34        InputStream fileInputStream = null;
35  	    OutputStream outputStream = null;
36  
37  	    try {
38  	      fileInputStream = context.getFileInputStream(MySpaceHandler.PARAM_FILE);
39  		    outputStream = context.getStoreClient().putStream(dest, false);
40  		    
41  		    // Copy the input stream to the output stream.
42  		    byte[] bytesRead = null;
43  		    int bytesAvailable = fileInputStream.available();
44  		    while(bytesAvailable > 0) {
45  		      bytesRead = new byte[bytesAvailable];
46  		      fileInputStream.read(bytesRead);
47  		      outputStream.write(bytesRead);
48  		      
49  		      bytesAvailable = fileInputStream.available();
50  		    }
51  	    }
52  	    catch(Exception e) {
53  	      throw new MySpaceHandlerException("error uploading file", e);
54  	    }
55  	    finally {
56  	      try {
57  	        if(fileInputStream != null) {
58  		        fileInputStream.close();
59  		      }
60  	      }
61  	      catch(Throwable t){
62  	        // assume closure.
63  	      }
64  
65  	      try {
66  	        if(outputStream != null) {
67  	          outputStream.close();
68  		      }
69  	      }
70  	      catch(Throwable t){
71  	        // assume closure.
72  	      }
73  	    }
74      }
75      else {
76        throw new MySpaceHandlerException("invalid destination or file name");
77      }
78    }
79  }