我用struts2 做的文件上传
1.前台imgUp.ftl代码为:
[code="java"]
[/code]
2.action代码为:
[code="java"]
public class UploadAction extends BasePageSupport{
private String selectDir;//上传目录参数
private File upload;//上传文件域
private String uploadContentType;//上传文件的类型
private String uploadFileName;//上传文件名
public String getSelectDir() {
return selectDir;
}
public void setSelectDir(String selectDir) {
this.selectDir = selectDir;
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
/**
* 文件上传入口
*
* @return String
* @throws Exception
*/
public String toUpload() throws Exception {
return SUCCESS;
}
/**
* 文件上传
*
* @return String
* @throws Exception
*/
public String uploadFile() throws Exception{
System.out.println("文件名="+getUploadFileName());
System.out.println("文件类型="+getUploadContentType());
System.out.println("上传目录="+getSelectDir());
return SUCCESS;
}
}
[/code]
3.struts.xml配置
[code="java"]
<!-- 文件上传入口 -->
/WEB-INF/template/front/imgUp.ftl
<!-- 文件上传 -->
<action name="upload" class="com.comabc.web.action.front.UploadAction" method="uploadFile">
<result name="success">
<param name="location">/WEB-INF/template/front/imgUp.ftl</param>
</result>
<result name="input">
<param name="location">/WEB-INF/template/front/imgUp.ftl</param>
</result>
</action>
[/code]
4.web.xml配置还是以前一样的:
[code="java"]
<!-- 定义struts2的filterDispathcer的filter -->
struts2
org.apache.struts2.dispatcher.FilterDispatcher
<!-- filterDispatcher用来初始化struts2并且处理所有的web请求 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<!-- FilterDispatcher辅助类开始,多文件上传时用 -->
<filter>
<filter-name> struts-cleanup </filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- FilterDispatcher辅助类结束 -->
[/code]
大家帮我看看。哪里不对吗?我运行。输出总是:
文件名=null
文件类型=null
上传目录=a
文件名和文件类型都接收不到!