通过文件上传多个图像上传并保存到数据库asp.net

时间:2014-04-17 08:10:11

标签: c# asp.net file-upload

好的,所以我正在尝试选择多个图像并将它们保存在asp.net的数据库中。 我不想使用任何插件或任何类型的脚本。

这是设计师页面:

<asp:FileUpload AllowMultiple="true"  ID="fileuploadimages" runat="server" />
<asp:Button runat="server" ID="btnUpload" CssClass="btnStyle" Text="Upload Image"
 OnClick="btnUpload_Click" />

到目前为止,我已经完成了按钮上传事件。它的作用是它允许我选择多个文件,就像我选择3个图像一样,它将第一个文件保存在我的数据库中三次并将其保存在“图片”文件夹中,而不是保存所有三个。

protected void btnUpload_Click(object sender, EventArgs e)
{
    if (fileuploadimages.HasFile == false)
    {
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", "<script>alert('No File Uploaded.')</script>", false);
    }
    else    
    {
        foreach (var file in fileuploadimages.PostedFiles)
        {
            string filename =Path.GetFileName(fileuploadimages.PostedFile.FileName);

            fileuploadimages.SaveAs(Server.MapPath("../Pictures/" + filename));  

            SqlCommand cmd = new SqlCommand("Insert into
            EventPageView(Event_name,Event_Text,Image_Path)
            values(@EventName,@EventText,@ImagePath)", conn);

            cmd.Parameters.AddWithValue("@ImagePath", filename);
            cmd.Parameters.AddWithValue("@EventName", txtEventName.Text);
            cmd.Parameters.AddWithValue("@EventText", txtEnterDesc.Text);
            conn.Open();
            cmd.ExecuteNonQuery();

            conn.Close();
            BindDataList();
        }    
    }
}

1 个答案:

答案 0 :(得分:4)

更改这两行:

string filename = Path.GetFileName(fileuploadimages.PostedFile.FileName);

fileuploadimages.SaveAs(Server.MapPath("../Pictures/" + filename));

string filename = Path.GetFileName(file.FileName);

file.SaveAs(Server.MapPath("../Pictures/" + filename));

我希望它会有所帮助。因为您必须使用对象file