2013-06-26 64 views
1

我需要上傳多個文件到服務器。 我寫了下面的代碼 JSP:用struts上傳多個文件1

<form action="fileUpload.do" method="post" enctype="multipart/form-data"> 

    <input type="file" name="image" /> 
    <input type="file" name="image" /> 
    </div> 
    </div> 
    <input type="submit" value="submit"> 
    </form> 

的ActionForm:

public class UploadForm extends ActionForm { 

private FormFile[] image = new FormFile[2] ; 


public FormFile[] getImage() { 
    return image; 
} 

public void setImage(FormFile[] image) { 
    this.image = image; 
} 

public ActionErrors validate(ActionMapping mapping, 
     HttpServletRequest request) { 
    // TODO Auto-generated method stub 
    return null; 
} 


public void reset(ActionMapping mapping, HttpServletRequest request) { 
    // TODO Auto-generated method stub 
} 

它給了我這個錯誤

java.lang.IllegalArgumentException: argument type mismatch 
+0

這難道不是更安全的程序,有'名字= image0'和'名稱= image1'? –

+0

我沒有明白你的意思? – fatiDev

+1

您正在介紹一組文件的特例。更好的FormFile image0和image1。 (Struts已經被遺忘了。)如果你可以爲一個FormFile創建它,那麼第二個應該很簡單。 –

回答

1

您需要使用使用類似的表單,輸入名稱= 「上傳」

<form action="fileUpload.do" method="post" enctype="multipart/form-data"> 
    <input type="file" name="upload" /> 
    <input type="file" name="upload" /> 
    <input type="submit" value="submit"> 
</form> 

和豆方需要

public class UploadBean extends BaseBean implements HttpSessionBindingListener { 

    protected ArrayList<FormFile> uploaded = new ArrayList<>(); 


    public void setUpload(List<FormFile> file) { uploaded.addAll(file); } 

    public List<FormFile> getUpload() { return uploaded; } 
}