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");
}
}