public class UploadsAction extends BaseAction{
private File[] file;
private String[] fileFileName;
private String[] fileContentType;
private String serverDir = "/Upload";
public File[] getFile() {
return file;
}
public void setFile(File[] file) {
this.file = file;
}
public String[] getFileFileName() {
return fileFileName;
}
public void setFileFileName(String[] fileFileName) {
this.fileFileName = fileFileName;
}
public String[] getFileContentType() {
return fileContentType;
}
public void setFileContentType(String[] fileContentType) {
this.fileContentType = fileContentType;
}
/**
* 获取文件夹的真实路径
*
* @param Path
* @return
*/
private String getRealPath(String Path) {
return this.request.getServletContext().getRealPath(Path);
}
/**
* 上传
*
* @return
*/
public String upload() throws IOException {
for (int i = 0; i < file.length; i++) {
System.out.println("名字" + fileFileName[i]);
System.out.println("类型" + fileContentType[i]);
//真实路径 ,文件名前面加上uuid是因为可能会因为文件名相同而覆盖
String realPath = getRealPath(serverDir + "/" + UUID.randomUUID().toString() +fileFileName[i]);
System.out.println(realPath);
//复制
FileUtils.copyFile(file[i], new File(realPath));
}
return "Interceptor";
}
}
BaseAction
package com.hw.one.web;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
/**
* 每一个开发的子控制器要用的属性都定义在通用的action中。
* @author Administrator
*
*/
public class BaseAction implements ServletRequestAware, ServletResponseAware{
/**
* 为了传值使用
*/
protected HttpServletResponse response;
protected HttpServletRequest request;
protected HttpSession session;
protected ServletContext application;
/**
* 为了配置跳转页面所用
*/
protected final static String SUCCESS = "success";
protected final static String FAIL = "fail";
protected final static String LIST = "list";
protected final static String ADD = "add";
protected final static String EDIT = "edit";
protected final static String DETAIL = "detail";
/**
* 具体传值字段 后端向jsp页面传值所用字段
*/
protected Object result;
protected Object msg;
protected int code;
public Object getResult() {
return result;
}
public Object getMsg() {
return msg;
}
public int getCode() {
return code;
}
@Override
public void setServletResponse(HttpServletResponse arg0) {
this.response = arg0;
}
@Override
public void setServletRequest(HttpServletRequest arg0) {
this.request = arg0;
this.session = arg0.getSession();
this.application = arg0.getServletContext();
}
}
单个文件上传见上篇博客