如果需要原工程,請與我QQ聯繫,發送加好友請求時請注明"真正實現Struts多檔上傳",QQ:19716631
-------以下是actionForm-----------
//Created by MyEclipse Struts
// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.1.0/xslt/JavaClass.xsl
package com.moreFileUpdate.form;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import com.moreFileUpdate.data.UploadFile;
/**
* MyEclipse Struts
* Creation date: 10-28-2006
*
* XDoclet definition:
* @struts.form name="moreFileUploadForm"
*/
public class MoreFileUploadForm extends ActionForm {
// --------------------------------------------------------- Instance Variables
// --------------------------------------------------------- Methods
/**
* Method validate
* @param mapping
* @param request
* @return ActionErrors
*/
public ActionErrors validate(
ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
return null;
}
/**
* Method reset
* @param mapping
* @param request
*/
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}
private List myFiles;
public MoreFileUploadForm(){
myFiles = new ArrayList();
//為了能夠在頁面初始顯示一個file
myFiles.add(new UploadFile());
}
public List getMyFiles() {
//System.out.println("get------>");
return myFiles;
}
//注意這個方法的定義
public UploadFile getUploadFile(int index){
int size = myFiles.size();
if(index>size){
for(int i=size-1;i<index;i++){
myFiles.add(new UploadFile());
}
}
//System.out.println("--------->"+size);
else if(index>size-1){
myFiles.add(new UploadFile());
}
// System.out.println("size----->"+myFiles.size());
return (UploadFile)myFiles.get(index);
}
public void setMyFiles(List myFiles) {
//System.out.println("set------->");
this.myFiles = myFiles;
}
}
--------以下是action--------
//Created by MyEclipse Struts
// XSL source (default): platform:/plugin/com.genuitec.eclipse.cross.easystruts.eclipse_4.1.0/xslt/JavaClass.xsl
package com.moreFileUpdate.action;
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 com.moreFileUpdate.data.UploadFile;
import com.moreFileUpdate.form.MoreFileUploadForm;
/**
* MyEclipse Struts
* Creation date: 10-28-2006
*
* XDoclet definition:
* @struts.action path="/moreFileUpload" name="moreFileUploadForm" scope="request" validate="true"
*/
public class MoreFileUploadAction extends Action {
// --------------------------------------------------------- Instance Variables
// --------------------------------------------------------- Methods
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
MoreFileUploadForm moreFileUploadForm = (MoreFileUploadForm) form;
List myFiles = moreFileUploadForm.getMyFiles();
for(int i =0;i<myFiles.size();i++){
UploadFile uploadFile = (UploadFile)myFiles.get(i);
FormFile file = uploadFile.getFile();
if(file==null){
System.out.println("file is null");
}
else{
//能運行到這�堙A就可以使用單個檔上傳的方法進行上傳了。迴圈而已
System.out.println("filename:::" + file.getFileName());
System.out.println("file size:::" + file.getFileSize());
}
}
return null;
}
}
------以下是jsp頁面-------
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-template" prefix="template" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-nested" prefix="nested" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html>
<head>
<title>
multiUploadDemo
</title>
</head>
<script language="javascript" type="text/javascript">
var num = 0;
function addFile(){
num++;
var obj=document.getElementById("uploadFile");
var innerHTML=obj.innerHTML;
var insertHTML="
<input type='file' name='uploadFile["+num+"].file'>";
innerHTML=innerHTML+insertHTML;
//alert(innerHTML);
obj.innerHTML=innerHTML;
}
function upload(){
moreFileUploadForm.submit();
}
</script>
<body bgcolor="#ffffff">
<html:form method="post" action="/moreFileUpload.do" enctype="multipart/form-data">
<table border="1">
<TBODY>
this is file
<nested:iterate id="uploadFile" property="myFiles" name="moreFileUploadForm" indexId="index">
<nested:nest property="uploadFile">
<span id="uploadFile"><nested:file property="file" name="uploadFile" indexed="true"/></span>
</nested:nest>
</nested:iterate>
<TR>
<input type="button" name="btnAddFile" value="Add File" onclick="addFile()"/>
<TR><TD id="tdTarget"></TD>
<input type="button" name="btnUpload" value="upload" onclick="upload()">
</TBODY>
</table>
</html:form>
</body>
</html:html>
评论0