通过文件上传实现多图片上传并保存到数据库的asp.net方法

4
好的,我想在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张图片,它会将第一个文件保存三次到我的数据库中,并且只将其保存一次到名为“Pictures”的文件夹中,而不是保存所有三个文件。
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
just remove some extra codes. - reaz
1个回答

4

请将这两行代码修改为:

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

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

to

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

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

我希望这可以帮到你。因为你必须使用对象 file

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接