十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

前台form 表单:设置method=post,enctype=multipart/form-data。
struts2在原有的上传解析器继承上做了进一步封装,更进一步简化了文件上传。
Action需要使用3个属性来封装该文件域的信息:
(1)类型为File的*属性封装了该文件域对应的文件内容;
(2)类型为String的***FileName属性封装了该文件域对应的文件的文件类型;
(3)类型为String的***ContentType属性封装了该文件域对应的文件的类型。
具体实现:
新建web项目

添加struts2相关包
myeclipse可直接下载,右击项目,如下。

前台
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
配置web.xml
UploadFile struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 *.action
配置struts.xml
/index.jsp
后台代码
public class UploadAction extends ActionSupport{
private List upload;
private List uploadContentType;
private List uploadFileName;
public List getUpload() {
return upload;
}
public void setUpload(List upload) {
this.upload = upload;
}
public List getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(List uploadContentType) {
this.uploadContentType = uploadContentType;
}
public List getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(List uploadFileName) {
this.uploadFileName = uploadFileName;
}
@Override
public String execute() throws Exception {
//文件保存路径
String path = ServletActionContext.getServletContext().getRealPath("/images");
File file = new File(path);
//不存在则创建
if(!file.exists()){
file.mkdir();
}
//循环将文件上传到指定路径
for(int i = 0; i< upload.size(); i++){
FileUtils.copyFile(upload.get(i), new File(file,uploadFileName.get(i)));
}
return SUCCESS;
} 结果如下


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。