利用Struts1实现多个文件的上传

来源:互联网 发布:关口知宏 新疆妹子 编辑:程序博客网 时间:2024/05/21 21:50

1.编写相应的JSP页面,实现文件上传的输入表单。

<html:form action="/upload" enctype="multipart/form-data">        上传用户:<html:text property="username"></html:text><br/>            上传文件1:<input type="file" name="list[0]"><br/>            上传文件2:<input type="file" name="list[1]"><br/>            <html:submit value="提交"></html:submit>    </html:form>

2.配置Struts的配置文件,在配置文件当中表单的配置相应的action和formbean。

<action path="/upload" type="xidian.qyz.web.action.UploadAction"            name="uploadfile">            <forward name="success" path="/pages/success.jsp"></forward>        </action>        <action path="/download" type="xidian.qyz.web.action.DownloadAction"></action>

3.Java代码编写对应的action和formbean。在formbean中利用一个List的集合保存上传文件的输入的属性值。在action中用一个for循环去是实现多个文件上传。

package xidian.qyz.web.form;import java.util.ArrayList;import java.util.List;import org.apache.struts.action.ActionForm;import org.apache.struts.upload.FormFile;public class uploadform extends ActionForm {    private String username;    private List<FormFile> list = new ArrayList();//利用一个List的集合保存上传文件的属性    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }/* * 相应的get和set方法 */    public void setList(int index, FormFile file) {        list.add(file);    }    public FormFile getList(int index) {        return list.get(index);    }    public List<FormFile> getAll() {        return list;    }}

package xidian.qyz.web.action;

import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import xidian.qyz.web.form.uploadform;

public class UploadAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,        HttpServletRequest request, HttpServletResponse response)        throws Exception {    uploadform formbean = (uploadform) form;    System.out.println("文件的个数:"+formbean.getAll().size());    List<FormFile>result=formbean.getAll();    for(FormFile formFile:result){        String filename = formFile.getFileName();        InputStream in = formFile.getInputStream();        FileOutputStream out = new FileOutputStream("c:\\" + filename);        int len = 0;        byte buffer[] = new byte[1024];        while((len=in.read(buffer))>0){            out.write(buffer, 0, len);        }        in.close();        out.close();    }    return mapping.findForward("success");}

}

0 0
原创粉丝点击