packagecom.cpsec.tang.chemical.action;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importorg.apache.struts2.ServletActionContext;importcom.opensymphony.xwork2.ActionSupport;/*** 多文件上传*/
public class FilesUploadAction extendsActionSupport {//上传文件存放路径
private final static String UPLOADDIR = "/upload";//上传文件集合
private Listfile;//上传文件名集合
private ListfileFileName;//上传文件内容类型集合
private ListfileContentType;public ListgetFile() {returnfile;
}public void setFile(Listfile) {this.file =file;
}public ListgetFileFileName() {returnfileFileName;
}public void setFileFileName(ListfileFileName) {this.fileFileName =fileFileName;
}public ListgetFileContentType() {returnfileContentType;
}public void setFileContentType(ListfileContentType) {this.fileContentType =fileContentType;
}public String uploadform() throwsException {
HttpServletRequest request=ServletActionContext.getRequest();
String webpath=null;//上传路径
for (int i = 0; i < file.size(); i++) {//循环上传每个文件
uploadFile(i);
webpath="upload/"+this.getFileFileName().get(i);
}return "SUCCESS";
}//执行上传功能
private String uploadFile(int i) throwsFileNotFoundException, IOException {try{
InputStream in= newFileInputStream(file.get(i));
String dir=ServletActionContext.getRequest().getRealPath(UPLOADDIR);
File fileLocation= newFile(dir);//此处也可以在应用根目录手动建立目标上传目录
if(!fileLocation.exists()){boolean isCreated =fileLocation.mkdir();if(!isCreated) {//目标上传目录创建失败,可做其他处理,例如抛出自定义异常等,一般应该不会出现这种情况。
return null;
}
}
String fileName=this.getFileFileName().get(i);
File uploadFile= newFile(dir, fileName);
OutputStream out= newFileOutputStream(uploadFile);byte[] buffer = new byte[1024 * 1024];intlength;while ((length = in.read(buffer)) > 0) {
out.write(buffer,0, length);
}
in.close();
out.close();returnuploadFile.toString();
}catch(FileNotFoundException ex) {return null;
}catch(IOException ex) {return null;
}
}
}