001 package tagSamples.netui.fileUpload;
002 import com.bea.wlw.netui.pageflow.FormData;
003 import com.bea.wlw.netui.pageflow.Forward;
004 import com.bea.wlw.netui.pageflow.PageFlowController;
005 import java.io.FileNotFoundException;
006 import java.io.IOException;
007 import java.io.InputStreamReader;
008 import java.io.StringWriter;
009 import org.apache.struts.upload.FormFile;
010
011 /**
012 * @jpf:controller
013 * @jpf:view-properties view-properties::
014 * <!-- This data is auto-generated. Hand-editing this section is not recommended. -->
015 * <view-properties>
016 * <pageflow-object id="pageflow:/tagSamples/netui/fileUpload/fileUploadController.jpf"/>
017 * <pageflow-object id="action:begin.do">
018 * <property value="80" name="x"/>
019 * <property value="120" name="y"/>
020 * </pageflow-object>
021 * <pageflow-object id="action:uploadFile.do#tagSamples.netui.fileUpload.fileUploadController.UploadFileForm">
022 * <property value="280" name="x"/>
023 * <property value="240" name="y"/>
024 * </pageflow-object>
025 * <pageflow-object id="action:backToBrowsePage.do">
026 * <property value="80" name="x"/>
027 * <property value="400" name="y"/>
028 * </pageflow-object>
029 * <pageflow-object id="action-call:@page:browseForFile.jsp@#@action:uploadFile.do#tagSamples.netui.fileUpload.fileUploadController.UploadFileForm@">
030 * <property value="116,180,180,244" name="elbowsX"/>
031 * <property value="232,232,232,232" name="elbowsY"/>
032 * <property value="East_1" name="fromPort"/>
033 * <property value="West_1" name="toPort"/>
034 * </pageflow-object>
035 * <pageflow-object id="page:browseForFile.jsp">
036 * <property value="80" name="x"/>
037 * <property value="240" name="y"/>
038 * </pageflow-object>
039 * <pageflow-object id="action-call:@page:showFile.jsp@#@action:backToBrowsePage.do@">
040 * <property value="244,180,180,116" name="elbowsX"/>
041 * <property value="392,392,392,392" name="elbowsY"/>
042 * <property value="West_1" name="fromPort"/>
043 * <property value="East_1" name="toPort"/>
044 * </pageflow-object>
045 * <pageflow-object id="page:showFile.jsp">
046 * <property value="280" name="x"/>
047 * <property value="400" name="y"/>
048 * </pageflow-object>
049 * <pageflow-object id="forward:path#success#browseForFile.jsp#@action:begin.do@">
050 * <property value="80,80,80,80" name="elbowsX"/>
051 * <property value="164,180,180,196" name="elbowsY"/>
052 * <property value="South_1" name="fromPort"/>
053 * <property value="North_1" name="toPort"/>
054 * <property value="success" name="label"/>
055 * </pageflow-object>
056 * <pageflow-object id="forward:path#success#showFile.jsp#@action:uploadFile.do#tagSamples.netui.fileUpload.fileUploadController.UploadFileForm@">
057 * <property value="280,280,280,280" name="elbowsX"/>
058 * <property value="284,320,320,356" name="elbowsY"/>
059 * <property value="South_1" name="fromPort"/>
060 * <property value="North_1" name="toPort"/>
061 * <property value="success" name="label"/>
062 * </pageflow-object>
063 * <pageflow-object id="forward:path#success#browseForFile.jsp#@action:backToBrowsePage.do@">
064 * <property value="80,80,80,80" name="elbowsX"/>
065 * <property value="356,320,320,284" name="elbowsY"/>
066 * <property value="North_1" name="fromPort"/>
067 * <property value="South_1" name="toPort"/>
068 * <property value="success" name="label"/>
069 * </pageflow-object>
070 * <pageflow-object id="formbeanprop:tagSamples.netui.fileUpload.fileUploadController.UploadFileForm#theFile#org.apache.struts.upload.FormFile"/>
071 * <pageflow-object id="formbean:tagSamples.netui.fileUpload.fileUploadController.UploadFileForm"/>
072 * </view-properties>
073 * ::
074 */
075 public class fileUploadController extends PageFlowController
076 {
077
078 public String strFile;
079
080 public String strFileName;
081
082 /**
083 * @jpf:action
084 * @jpf:forward name="success" path="browseForFile.jsp"
085 */
086 protected Forward begin()
087 {
088 return new Forward( "success" );
089 }
090
091 /**
092 * This method converts the uploaded file to a String format,
093 * and fowards the user to a page where the String is displayed.
094 *
095 * @jpf:action
096 * @jpf:forward name="success" path="showFile.jsp"
097 */
098 protected Forward uploadFile(UploadFileForm form)
099 throws FileNotFoundException, IOException
100 {
101 // Get the size of the file.
102 int filesize = (form.theFile.getFileSize());
103
104 // Make a char Array big enough to fit the file.
105 char[] charArr = new char[filesize];
106
107 //Create an input stream to read the file.
108 InputStreamReader inr = new InputStreamReader(form.theFile.getInputStream());
109
110 // Load the input stream into the char Array.
111 inr.read(charArr);
112
113 //Close the input stream.
114 inr.close();
115
116 // Make a String writer to hold uploaded file as a String.
117 StringWriter strwr = new StringWriter();
118
119 // Write the char Array to the StringBuffer.
120 // Each StringWriter has an internal StringBuffer object.
121 // You can access the StringBuffer with the .getBuffer method.
122 strwr.write(charArr);
123
124 // Store the file name and the file content in strFileName and strFile, respectively.
125 // showFile.jsp databinds to these two String objects.
126 strFileName = form.theFile.getFileName();
127 strFile = strwr.getBuffer().toString();
128
129 //Close the StringWriter object.
130 strwr.close();
131
132 // Foward the user to the showFile.jsp page.
133 return new Forward("success");
134 }
135
136 /**
137 * @jpf:action
138 * @jpf:forward name="success" path="browseForFile.jsp"
139 */
140 protected Forward backToBrowsePage()
141 {
142 return new Forward("success");
143 }
144
145 /**
146 * FormData get and set methods may be overwritten by the Form Bean editor.
147 */
148 public static class UploadFileForm extends FormData
149 {
150 private org.apache.struts.upload.FormFile theFile;
151
152 public void setTheFile(org.apache.struts.upload.FormFile theFile)
153 {
154 this.theFile = theFile;
155 }
156
157 public org.apache.struts.upload.FormFile getTheFile()
158 {
159 return this.theFile;
160 }
161 }
162 }
|