langhua9527 发表于 2013-2-4 19:44:57

struts上传多文件

html网页
<form action="upload.shtml" method="post" enctype="multipart/form-data">    title:<input name="title" type="text"/><br/>    file:<input name="value(0)" type="file"/><br/>    file:<input name="value(1)" type="file"/><br/>    file:<input name="value(2)" type="file"/><br/>    file:<input name="value(3)" type="file"/><br/>      <input type="submit" value="submit"/>    </form>

ActionForm
//用ArrayList装FormFile,这样写的问题就是顺序要乱。public class UploadActionForm extends ActionForm {private String title;private ArrayList formFiles;public UploadActionForm(){formFiles = new ArrayList();}    public void setValue(String iIndex, FormFile value){    getFormFiles().add(value);    }    public FormFile getValue(String iIndex){    return (FormFile) formFiles.get(Integer.parseInt(iIndex));    }public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public ArrayList getFormFiles() {return formFiles;}public void setFormFiles(ArrayList formFiles) {this.formFiles = formFiles;}}

Action里面的处理
UploadActionForm daf = (UploadActionForm) form;ArrayList arrayList = daf.getFormFiles();

下面是HashMap装FileForm的方法
HTML页面和上面的一样
只不过FileForm里面用的是HashMap
public class UploadActionForm extends ActionForm {private String title;private Map fileMap;public UploadActionForm(){fileMap = new HashMap();}    public void setValue(String iIndex, FormFile value){    fileMap.put(iIndex,value);    }    public FormFile getValue(String iIndex){    return (FormFile) fileMap.get(iIndex);    }public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public Map getFileMap() {return fileMap;}}
Action里面这样处理就可以获得相应的值了
UploadActionForm daf = (UploadActionForm) form;daf.getValue("0");daf.getValue("1");daf.getValue("2");daf.getValue("3");

最后还可以在配置文件里面设置上传文件的大小
<struts-config>      <controller maxFileSize="10M"/></struts-config>

//if(file!=null){//FileOutputStream fos = new FileOutputStream("c://"+file.getFileName());//fos.write(file.getFileData());//fos.flush();//fos.close();//}//      request.getSession().getServletContext().getRealPath("/");表示当前项目的地址C:\tomcat6.0\webapps\xxx_04\
页: [1]
查看完整版本: struts上传多文件