2016-05-10 18 views
0

我想上傳使用FileUpload控制一個以上的圖像,但沒能做到這一點如何在框架4.0 asp.net中選擇使用的FileUpload conrol多個圖像C#

我想:

<asp:FileUpload ID="fuImage" AllowMultiple="true" runat="server"/> 

這也:

<asp:FileUpload ID="fuImage" multiple="multiple" runat="server"/> 

但我搜索在谷歌時,我發現,這是隻有4.0

工作4.5版本不
protected void btnAdd_Click(object sender, EventArgs e) 
    { 
     if (fuimage.HasFile) 
     { 
      string fname = fuimage.FileName; 
      string path = Server.MapPath("~/EventPics/"); 
      string fext = Path.GetExtension(fname); 
      fext = fext.ToLower(); 
      string link = "~/EventPics/" + fname; 
      if (fext == ".jpg" || fext == ".png" || fext == ".gif" || fext == ".bmp") 
      { 
       fuimage.SaveAs(path + fname); 
       con = new SqlConnection(ConfigurationManager.ConnectionStrings["WebAAERT_DBConnectionString"].ConnectionString); 
       SqlCommand cmd; 

       //create command 
       cmd = new SqlCommand("EventMasterInsert", con); 
       cmd.CommandType = CommandType.StoredProcedure; 
       cmd.Parameters.AddWithValue("@ImagePath", link); 
       cmd.Parameters.AddWithValue("@EventTitle", txtEventTitle.Text); 
       cmd.Parameters.AddWithValue("@EventDate", txtEventDate.Text); 
       cmd.Parameters.AddWithValue("@EventPlace", txtPlace.Text); 
       cmd.Parameters.AddWithValue("@ShortDescription", txtShort.Text); 
       cmd.Parameters.AddWithValue("@Description", txtDesc.Text); 
       cmd.Parameters.AddWithValue("@EventTime", txtTime.Text); 
       //open connection 
       cmd.Connection = con; 
       con.Open(); 

       //execute command 
       int rowcount = cmd.ExecuteNonQuery(); 
       if (rowcount > 0) 
       { 
        Response.Write("<script>alert('Event Added');</script>"); 
        txtDesc.Text = ""; 
        txtEventDate.Text = ""; 
        txtEventTitle.Text = ""; 
        txtPlace.Text = ""; 
        txtShort.Text = ""; 
        txtTime.Text = ""; 


       } 
      } 
     } 

我試圖

foreach(item in fuImage.postedFile) 
{ 
} 

,但其沒有工作..不知道如何做到這一點的最簡單的方法..

回答

1

試試這個

 protected void btnAdd_Click(object sender, EventArgs e) 
     { 
      if (Request.Files.Count > 0) 
      { 
       HttpFileCollection attachments = Request.Files; 
       for (int i = 0; i < attachments.Count; i++) 
       { 
        HttpPostedFile attachment = attachments[i]; 
        if (attachment.ContentLength > 0 && !String.IsNullOrEmpty(attachment.FileName)) 
        { 
         string fname = attachment.FileName; 
         string path = Server.MapPath("~/EventPics/"); 
         string fext = Path.GetExtension(fname); 
         fext = fext.ToLower(); 
         string link = "~/EventPics/" + fname; 
         if (fext == ".jpg" || fext == ".png" || fext == ".gif" || fext == ".bmp") 
         { 
          attachment.SaveAs(path + fname); 
          con = new SqlConnection(ConfigurationManager.ConnectionStrings["WebAAERT_DBConnectionString"].ConnectionString); 
          SqlCommand cmd; 

          //create command 
          cmd = new SqlCommand("EventMasterInsert", con); 
          cmd.CommandType = CommandType.StoredProcedure; 
          cmd.Parameters.AddWithValue("@ImagePath", link); 
          cmd.Parameters.AddWithValue("@EventTitle", txtEventTitle.Text); 
          cmd.Parameters.AddWithValue("@EventDate", txtEventDate.Text); 
          cmd.Parameters.AddWithValue("@EventPlace", txtPlace.Text); 
          cmd.Parameters.AddWithValue("@ShortDescription", txtShort.Text); 
          cmd.Parameters.AddWithValue("@Description", txtDesc.Text); 
          cmd.Parameters.AddWithValue("@EventTime", txtTime.Text); 
          //open connection 
          cmd.Connection = con; 
          con.Open(); 

          //execute command 
          int rowcount = cmd.ExecuteNonQuery(); 
          if (rowcount > 0) 
          { 
           Response.Write("<script>alert('Event Added');</script>"); 
           txtDesc.Text = ""; 
           txtEventDate.Text = ""; 
           txtEventTitle.Text = ""; 
           txtPlace.Text = ""; 
           txtShort.Text = ""; 
           txtTime.Text = ""; 


          } 
         } 
        } 
       } 
      } 
     } 
+0

我不能夠選擇比文件的更多。所以這段代碼也只會上傳一張圖片。 –

+0

我用這個'' –

1

你不能與.net框架4.0。多文件上傳是HTML的一項功能。文件輸入控件的倍數只是在HTML 5中添加的,ASP.Net 4.0沒有這個功能。您必須找到不從fileuplaod控件繼承的第三方控件才能執行此操作。

http://www.asp.net/ajaxlibrary/AjaxControlToolkitSampleSite/AsyncFileUpload/AsyncFileUpload.aspx

http://www.codeproject.com/Articles/24271/Multiple-File-Upload-User-Control

+0

或者你可以使用.net framework 4.5因爲它有這個功能 他們添加FileUpload.PostedFiles屬性看這個鏈接 https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.postedfiles(v=vs.110).aspx –

相關問題