Struts2文件上传简单的鸭皮
struts2实现文件上传相关拦截器:
1、fileUpload:参数提取
2、params:参数注入
1、当然首先是要搭一个Struts2框架环境
导包+配置struts2核心过滤器+struts.xml配置文件(约束)
2、前端页面
需要注意的问题都在代码注释里面啦,别忘记导入jstl标签库就行啦
<body>
<!-- 文件上传三个要求:
1、文件上传使用<input type="file"/>组件
2、必须使用post方式提交
3、表单提交类型必须使用多段式 -- enctype="multipart/form-data"
-->
<form action="${pageContext.request.contextPath }/UploadAction" method="post" enctype="multipart/form-data">
<!-- name="photo"方便后台接收数据 -->
<input type="file" name="photo"/>
<input type="submit" value="提交">
</form>
</body>
3、后台UploadAction书写
感觉有点像是属性驱动获得参数
import java.io.File;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport {
private static final long serialVersionUID = -5525305339123440160L;
//提供一个与前台input标签同名File属性,上传的文件会自动保存到File对象中
private File photo;
//在提交键名后面加上固定后缀FileName,文件名会自动封装到属性中
private String photoFileName;
//在提交键名后面加上固定后缀ContentType,文件mime类型会自动封装到属性中
private String photoContentType;
@Override
public String execute() throws Exception {
//将上传文件保存到指定位置
photo.renameTo(new File("D:/JAVAS/" + photoFileName));
System.out.println("文件名:" + photoFileName);
System.out.println("文件类型:" + photoContentType);
return SUCCESS;
}
public void setPhoto(File photo) {
this.photo = photo;
}
public void setPhotoFileName(String photoFileName) {
this.photoFileName = photoFileName;
}
public void setPhotoContentType(String photoContentType) {
this.photoContentType = photoContentType;
}
}
4、配置Action
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="uploadAction" namespace="/" extends="struts-default">
<action name="UploadAction" class="com.hytXwz.upload.UploadAction" method="execute">
<result name="success" type="dispatcher">/index.jsp</result>
</action>
</package>
</struts>
5、部署测试
双击打开也可以正常查看。大功告成!
技术交流:713788313