好的,所以我正在尝试选择多个图像并将它们保存在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();
}
}
}
答案 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