Struts2 アプリケーションでファイルアップロード処理を行っています。アクションクラスでファイル名とコンテンツタイプを表示すると、ヌルポインター例外が表示されます。
私はjarファイルを含め、次のコードを使用しています。
upload.jsp 内
<s:form action="saveBulkStores.action" method="POST" enctype="multipart/form-data">
<s:actionmessage name="message"/>
<s:label value="File Name : *" />
<s:file name="upload" label="File" size="40"/>
<br>
<br>
<s:submit name="ADD" value="UPLOAD"/>
<input type="button" onClick="cancelFunction()" name="Cancel" value="Cancel" tabindex="10">
</s:form>
struts.xml 内
<action name="saveBulkStores" class="com.rewardz.action.FilesUploadAction" method="saveBulkStores">
<interceptor-ref name="fileUpload">
<param name="maximumSize">52428800</param>
</interceptor-ref>
<interceptor-ref name="basicStack"/>
<result name="input">/uploadfile.jsp</result>
<result name="viewFile">/viewfile.jsp</result>
<result name="Reload">/uploadfile.jsp</result>
</action>
アクション クラス:
private File file;
private String contentType;
private String filename;
public void setUpload(File file) {
this.file = file;
}
public void setUploadContentType(String contentType) {
this.contentType = contentType;
}
public void setUploadFileName(String filename) {
this.filename = filename;
}
public String saveBulkStores() throws IOException{
System.out.println("check Bulk upload file");
String filePath = request.getRealPath("/");
System.out.println("Server path:" + filePath);
System.out.println("UPLOADFILECONTENT TYPE:"+contentType);
System.out.println("UPLOADFILENAME:"+filename);
System.out.println("UPLOADFILE:"+file);
System.out.println("**********************************");
value = "viewFile";
System.out.println("Forward Value:"+value);
return value;
}
Server.log に出力:(GlassFish Server を使用)
check Bulk upload file
C:\glassfish3_installer\glassfish\domains\domain1\applications\My_Application\
UPLOADFILECONTENT TYPE:null
UPLOADFILENAME:null
UPLOADFILE:null
Struts2のアップロードプロセスでファイル名、ファイルパスを取得するのを手伝ってください。