1.sturts的web文件的配置
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.struct.xml中的配置
<action name="fileuploadAction_*" class="cn.ecit.xtzs.web.controller.FileUploadAction" method="{1}">
<!--配置fileUpload的拦截器-->
<interceptor-ref name="fileUpload">
<!--配置允许上传的文件类型-->
<param name="allowedTypes">application/vnd.ms-excel,image/bmp,image/png,image/gif,image/jpeg
</param>
<!--配置允许上传的文件大小单位字节-->
<param name="maximumSize">2000000</param>
<!-- 配置可以上传的文件扩展名 -->
<!-- <param name="allowedExtensions">xls</param> -->
</interceptor-ref>
<interceptor-ref name="defaultStack"/><!--默认拦截器-->
<result name="success">/common/success.jsp</result>
<result name="input">/common/failure.jsp</result>
</action>
3.FileUploadAction类的实现
ublic class FileUploadAction extends ActionSupport implements ModelDriven<User>{
private User user=new User();
private File fileUpload;
private String fileUploadContextType;
private String fileUploadFileName;
public File getFileUpload() {
return fileUpload;
}
public void setFileUpload(File fileUpload) {
this.fileUpload = fileUpload;
}
public String getFileUploadContextType() {
return fileUploadContextType;
}
public void setFileUploadContextType(String fileUploadContextType) {
this.fileUploadContextType = fileUploadContextType;
}
public String getFileUploadFileName() {
return fileUploadFileName;
}
public void setFileUploadFileName(String fileUploadFileName) {
this.fileUploadFileName = fileUploadFileName;
}
public String upload()
{
ServletContext servletContext= ServletActionContext.getServletContext();
String path=servletContext.getRealPath("/upload");
File file=new File(path,fileUploadFileName);
if(file.exists())
{
file.mkdirs();
}
try {
FileUtils.copyFile(fileUpload, file);
} catch (Exception e) {
e.printStackTrace();
return "INPUT";
}
ServletActionContext.getRequest().setAttribute("user", user);;
return SUCCESS;
}
@Override
public User getModel() {
return user;
}
}
4.jsp上传页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
<title>My JSP 'upload.jsp' starting page</title>
</head>
<body>
<s:form action="/upload/fileuploadAction_upload.action" enctype="multipart/form-data" method="post">
<s:file name="fileUpload"></s:file>
<s:submit value="上传"></s:submit>
</s:form>
</body>
</html>
5.展示页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>My JSP 'success.jsp' starting page</title>
</head>
<body>
<img alt="" src="${fileUploadFileName}"/>
</body>
</html>