/** * Struts2Test * 使用Struts2上传文件 */package com.labci.struts2.action;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.interceptor.ServletRequestAware;import com.opensymphony.xwork2.ActionSupport;/** * @author Bill Tu(tujiyue/iwtxokhtd) * Jun 8, 2011[8:31:01 PM] * */public class UploadFileAction extends ActionSupport implementsServletRequestAware {/** * */private static final long serialVersionUID = -1896915260152387341L;private HttpServletRequest request;public void setServletRequest(HttpServletRequest req) {this.request=req;}private List<File> fileName;//这里的"fileName"一定要与表单中的文件域名相同private List<String> fileNameContentType;//格式同上"fileName"+ContentTypeprivate List<String> fileNameFileName;//格式同上"fileName"+FileNameprivate String savePath;//文件上传后保存的路径private String allowTypes;//允许上传的文件类型public List<File> getFileName() {return fileName;}public void setFileName(List<File> fileName) {this.fileName = fileName;}public List<String> getFileNameContentType() {return fileNameContentType;}public void setFileNameContentType(List<String> fileNameContentType) {this.fileNameContentType = fileNameContentType;}public List<String> getFileNameFileName() {return fileNameFileName;}public void setFileNameFileName(List<String> fileNameFileName) {this.fileNameFileName = fileNameFileName;}@SuppressWarnings("deprecation")public String getSavePath() {return request.getRealPath(savePath);}public void setSavePath(String savePath) {this.savePath = savePath;}public String getAllowTypes() {return allowTypes;}public void setAllowTypes(String allowTypes) {this.allowTypes = allowTypes;}@Overridepublic String execute() throws Exception {//得到文件的类型List<String> fileTypes=getFileNameContentType();String []allowTypes=getAllowTypes().split(",");List<String> typesList=Arrays.asList(allowTypes);boolean allowFlag=true;//是否存在不允许上传的文件类型for(String type:fileTypes){if(!typesList.contains(type)){allowFlag=false;break;}}if(!allowFlag){request.setAttribute("fileTypeError", "您上传的文件中存在不允许上传的类型,允许上传的类型为:"+getAllowTypes());return INPUT;}//允许上传File dir=new File(getSavePath());if(!dir.exists()){dir.mkdirs();}List<File> files=getFileName();for(int i=0;i<files.size();i++){FileOutputStream fos=new FileOutputStream(getSavePath()+"//"+getFileNameFileName().get(i));FileInputStream fis=new FileInputStream(getFileName().get(i));byte []buffers=new byte[1024];int len=0;while((len=fis.read(buffers))!=-1){fos.write(buffers,0,len);}}List<String> fileHrefsList=new ArrayList<String>();for(String fileName:getFileNameFileName()){String href="/go.html?url=<a href="/go.html?url=/" mce_href="/go.html?url=/""downloadFile.action?fileName="+fileName+"/">"+fileName+"</a>";fileHrefsList.add(href);}request.setAttribute("fileNameList", fileHrefsList);return SUCCESS;}}/** * Struts2Test * 使用Struts2上传文件 */package com 你的当前访问异常,请进行认证后继续阅读剩余内容。 提交