2013-02-13 39 views
0

我正在尋找一種方法來完美管理我的asp.net 3.5項目中的HTML 5的<input type="file" multiple="multiple">標籤。 我之前用頁面上的單個控件完成了它,但是如果我們在同一頁面上有多個上傳控件會怎麼樣。請參閱我的代碼:在asp.net中使用HTML5文件(多個)控件

protected void btnSave_Click(object sender, EventArgs e) 
{ 
//---------Need to check if my upload control has files: Please suggest a perfect way 
if (fupAttachment.PostedFile != null || fupAttachment.PostedFile.FileName != "" || fupAttachment.PostedFile.ContentLength>0)//here is a problem, as it does not checks for a blank file upload control 
HttpFileCollection hfc = Request.Files; 
      string strDirectory = Server.MapPath("~/") + "Mailer/" + hidCampID.Value; 
      if (hfc.Count>0) 
      { 
       if (!System.IO.Directory.Exists(strDirectory)) 
       { 
        System.IO.Directory.CreateDirectory(strDirectory); 
       } 
       if (System.IO.Directory.Exists(strDirectory)) 
       { 
        for (int i = 0; i < hfc.Count - 1; i++) 
        { 
         hfc[i].SaveAs(strDirectory + "/" + hfc[i].FileName.Replace(" ", "_")); 
        } 
       } 
      } 
    } 
} 

我的ASP頁面是這樣的:

//----this control is from which I want to multiple upload files 
<input type="file" multiple="multiple" runat="server" id="fupAttachment" /> 

// Another upload control is there which takes input when page loads 
<asp:FileUpload ID="fupMailingList" runat="server" /> 

那麼,到底我的問題是,當頁面加載「fupMailingList」已經採取了文件,然後當我想要使用我的多個上傳控件「fupAttachment」,我無法檢查它是否有任何文件,因爲hfc會檢查所有上傳控件,並在其中一個文件中獲取文件。所以,請告訴我一種方法,只檢查「fupAttachment」控件,然後正確執行我的工作。

回答

1

而不是迭代請求中的所有文件,您應該檢查每個輸入的基礎上。

var uploadedFiles = Request.Files.GetMultiple("fupAttachment"); 
if(uploadedFiles.Count > 0) 
{ 
    // 
} 
0

只要檢查HasFile屬性。

if(fupMailingList.HasFile){ 
//Do something 
} 
相關問題