2014-03-06 27 views
0

您好編碼器我有一個文件上傳按鈕它用於從系統插入圖像並將它們保存到數據庫中現在我想要的是選擇多個圖像,但只使用單個在框架文件上傳4.0如何使用4.0中的單個文件上傳按鈕上載多個圖像

每個圖像都有一個優先級,以及

代碼:

protected void btnSubmit_Click(object sender, EventArgs e) 
{ 
    try 
    {          
     Boolean enable = true; 
     string relativepath = "https://Images/Module/" + ddlPPT.SelectedValue + "/"; 
     //Get imagename from fileupload control 
     string imgName = fileuploadimages.FileName.ToString(); 
     //sets the image path if exist then store image in that place else create new one 
     string imgPath = "images/Modules/" + "" + ddlPPT.SelectedValue + "/"; 
     bool IsExists = System.IO.Directory.Exists(Server.MapPath(imgPath)); 
     if (!IsExists) 
      System.IO.Directory.CreateDirectory(Server.MapPath(imgPath)); 
     //then save it to the Folder 
     fileuploadimages.SaveAs(Server.MapPath(imgPath + imgName)); 
     //Open the database connection 
     con.Open(); 
     //Query to insert * into Images_Master into database 
     SqlCommand cmd = new SqlCommand("Insert into Image_Master(Userid,Image_Name,Description,ModuleId,pptId,Priority,Imageurl,RelativePath,IsEnable,dt) values('"+Session["trainer"]+"','" + imgName + "','" + tbDescription.Text + "','" + ddlModule.SelectedValue + "','" + ddlPPT.SelectedValue + "','" + lblPriority.Text + "',@Imageurl,'" + relativepath + "','" + enable + "','" + DateTime.Now + "')", con); 
     //Passing parameters to query 
     cmd.Parameters.AddWithValue("@Image_Name", imgName); 
     cmd.Parameters.AddWithValue("@Description", tbDescription.Text.Trim()); 
     cmd.Parameters.AddWithValue("@ModuleId", ddlModule.SelectedValue); 
     cmd.Parameters.AddWithValue("@pptId", ddlPPT.SelectedValue); 
     cmd.Parameters.AddWithValue("@Priority", lblPriority.Text); 
     cmd.Parameters.AddWithValue("@Imageurl", imgPath + imgName); 
     cmd.Parameters.AddWithValue("@RelativePath", relativepath); 
     cmd.ExecuteNonQuery();   
     tbDescription.Text = ""; 
     Logs.InsertLogs(Session["Role"].ToString() + ":" + Session["trainer"].ToString(), "CreateModule.aspx.cs btn_Click", "Query Successfully Executed to insert image"); 
     Response.Write("<script>alert('Image uploaded..!!!');</script>");    
    } 
    catch (Exception ex2) 
    { 

    } 
    finally 
    { 
     if (con.State == ConnectionState.Open) 
     { 
      con.Close(); 
     } 
    } 
} 

在這方面,我使用的文件上傳按鈕選擇文件,然後單擊btnSubmit按鈕保存在數據庫中的圖像細節,現在我想用的上傳按鈕,在點擊btnSubmit按鈕數據保存在數據庫中預先 由於選擇多個圖像!!!!

+0

多個文件位於相同路徑或不同路徑... – pankeel

+0

它可能也可能不一樣,但現在我們可以說選擇多個圖像形成單個文件夾 – Amitesh

+0

使用Rad控件多文件上傳,非常簡單。你說的話?還是有必要使用asp.net文件上傳。 –

回答

0

試試這個

string[] files = Directory.GetFiles(Server.MapPath(imgPath));  

    List<string> filenames = new List<string>(); 
    for (int i = 0; i < files.Length; i++) 
    { 
try 
    {          
     Boolean enable = true; 
     string relativepath = "https://Images/Module/" + ddlPPT.SelectedValue + "/"; 
     //Get imagename from fileupload control 
     string imgName = fileuploadimages.FileName.ToString(); 
     //sets the image path if exist then store image in that place else create new one 
     string imgPath = "images/Modules/" + "" + ddlPPT.SelectedValue + "/"; 
     bool IsExists = System.IO.Directory.Exists(Server.MapPath(imgPath)); 
     if (!IsExists) 
      System.IO.Directory.CreateDirectory(Server.MapPath(imgPath)); 
     //then save it to the Folder 
     fileuploadimages.SaveAs(Server.MapPath(imgPath + Path.GetFileName(files[i]))); 
     //Open the database connection 
     con.Open(); 
     //Query to insert * into Images_Master into database 
     SqlCommand cmd = new SqlCommand("Insert into Image_Master(Userid,Image_Name,Description,ModuleId,pptId,Priority,Imageurl,RelativePath,IsEnable,dt) values('"+Session["trainer"]+"','" + Path.GetFileName(files[i]) + "','" + tbDescription.Text + "','" + ddlModule.SelectedValue + "','" + ddlPPT.SelectedValue + "','" + lblPriority.Text + "',@Imageurl,'" + relativepath + "','" + enable + "','" + DateTime.Now + "')", con); 
     //Passing parameters to query 
     cmd.Parameters.AddWithValue("@Image_Name", Path.GetFileName(files[i])); 
     cmd.Parameters.AddWithValue("@Description", tbDescription.Text.Trim()); 
     cmd.Parameters.AddWithValue("@ModuleId", ddlModule.SelectedValue); 
     cmd.Parameters.AddWithValue("@pptId", ddlPPT.SelectedValue); 
     cmd.Parameters.AddWithValue("@Priority", lblPriority.Text); 
     cmd.Parameters.AddWithValue("@Imageurl", imgPath + Path.GetFileName(files[i])); 
     cmd.Parameters.AddWithValue("@RelativePath", relativepath); 
     cmd.ExecuteNonQuery();   
     tbDescription.Text = ""; 
     Logs.InsertLogs(Session["Role"].ToString() + ":" + Session["trainer"].ToString(), "CreateModule.aspx.cs btn_Click", "Query Successfully Executed to insert image"); 
     Response.Write("<script>alert('Image uploaded..!!!');</script>");    
    } 
    catch (Exception ex2) 
    { 

    } 
    finally 
    { 
     if (con.State == ConnectionState.Open) 
     { 
      con.Close(); 
     } 
    } 
} 
+0

我取從本地計算機的文件夾 – Amitesh

+0

imgpath圖像是包含圖像的文件夾路徑... – pankeel

+0

imgpath用於存儲圖像不選擇圖像我的朋友的圖像路徑是商店數據庫中,以便交配 – Amitesh

0

到默認FileUploader控制另一種方法是使用AjaxFileUploader控制。您只能使用一個按鈕就可以選擇多個文件。

只是把這個標記:

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
      </asp:ScriptManager> 
     <asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server" 
     onuploadcomplete="AjaxFileUpload1_UploadComplete" AllowedFileTypes="jpg,jpeg" 
     MaximumNumberOfFiles="10"/> 

而在後臺代碼添加這個方法:

protected void AjaxFileUpload1_UploadComplete(Object sender, AjaxFileUploadEventArgs e) 
{ 
    // This method will be called after uploading each file 
    if (e.FileName != String.Empty) 
    { 
     string relativepath = "https://Images/Module/" + ddlPPT.SelectedValue + "/"; 
     //Get imagename from fileupload control 
     string imgName = e.FileName.ToString(); 
     //sets the image path if exist then store image in that place else create new one 
     string imgPath = "images/Modules/" + "" + ddlPPT.SelectedValue + "/"; 
     bool IsExists = System.IO.Directory.Exists(Server.MapPath(imgPath)); 
     if (!IsExists) 
      System.IO.Directory.CreateDirectory(Server.MapPath(imgPath)); 
     //then save it to the Folder 
     AjaxFileUpload1.SaveAs(Server.MapPath(imgPath + imgName)); 
     //Open the database connection 
     con.Open(); 
     //Query to insert * into Images_Master into database 
     SqlCommand cmd = new SqlCommand("Insert into Image_Master(Userid,Image_Name,Description,ModuleId,pptId,Priority,Imageurl,RelativePath,IsEnable,dt) values('" + Session["trainer"] + "','" + imgName + "','" + tbDescription.Text + "','" + ddlModule.SelectedValue + "','" + ddlPPT.SelectedValue + "','" + lblPriority.Text + "',@Imageurl,'" + relativepath + "','" + enable + "','" + DateTime.Now + "')", con); 
     //Passing parameters to query 
     cmd.Parameters.AddWithValue("@Image_Name", imgName); 
     cmd.Parameters.AddWithValue("@Description", tbDescription.Text.Trim()); 
     cmd.Parameters.AddWithValue("@ModuleId", ddlModule.SelectedValue); 
     cmd.Parameters.AddWithValue("@pptId", ddlPPT.SelectedValue); 
     cmd.Parameters.AddWithValue("@Priority", lblPriority.Text); 
     cmd.Parameters.AddWithValue("@Imageurl", imgPath + imgName); 
     cmd.Parameters.AddWithValue("@RelativePath", relativepath); 
     cmd.ExecuteNonQuery(); 
     tbDescription.Text = ""; 
     Logs.InsertLogs(Session["Role"].ToString() + ":" + Session["trainer"].ToString(), "CreateModule.aspx.cs btn_Click", "Query Successfully Executed to insert image"); 

     //you don't response.write here since the AjaxFileUploader already notify when image uploaded successfully 
     //Response.Write("<script>alert('Image uploaded..!!!');</script>"); 
    } 
} 

這樣,您就可以將多個文件downlod到服務器並保存在數據庫中的每個文件的URL 。

+0

節省您可以應用代碼在我的代碼 – Amitesh

+0

是看到我的編輯,嘗試並告訴我,如果你有任何問題的Facebook。 –

+0

插孔想到的是,我的圖片上傳didnt使用AJAX控件我不爲什麼當我選擇多張圖像,然後點擊上傳按鈕,它不會顯示任何東西沒有進度條上傳圖片沒有隻是停留有 – Amitesh

相關問題