4
我想使用struts2
與fileUpload
這個行爲很奇怪的文件上傳機制來開發一個web應用程序,我找不到原因。如何使用支持大文件的struts 2獲取文件上傳?
我配置在struts.xml中的文件上傳機制:
<package name="com.actions" namespace="/" extends="struts-default">
<action name="excelupload" class="com.actions.FileuploadAction">
<interceptor-ref name="fileUpload">
<param name="maximumSize">10000000</param>
</interceptor-ref>
<result name="success">/fileupload.jsp</result>
<result name="input">/fileupload.jsp</result>
</action>
</package>
相應JSP:
<s:form action="excelupload" method="post" enctype="multipart/form-data">
<s:file name="excelfile" label="file" />
<s:submit name="upload" value="upload" align="center" />
</s:form>
相應的動作:
public class FileuploadAction extends ActionSupport{
File excelfile;
public File getExcelfile() {
return excelfile;
}
public void setExcelfile(File excelfile) {
this.excelfile = excelfile;
}
public String execute(){
System.out.println(excelfile.getName());
return SUCCESS;
}
}
當我上傳一個小文件一切正常。但是,當我嘗試上傳的文件大於2 MB的應用程序會引發以下異常:
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request
was rejected because its size (3244109) exceeds the configured maximum (2097152)
要解決這個問題,我打算給struts-default.properties
與
struts.multipart.maxSize=20097152
增加的根我的應用程序的類路徑。
修正了例外,但現在excelfile
始終是null
,無論文件有多大。
有人知道我在做什麼錯嗎?
編輯:對於我的部署使用Tomcat 編輯:新增失蹤getter和setter方法。
檢查您正在使用的服務器的最大文件上傳大小限制。 – Jimmy
我已經在struts.xml中用試過了這個問題 –
ashiaka
你有'File excelFile'的getter和setter嗎? – nmc