C# 在asp.net mvc中上载单个文件而不是多个文件

C# 在asp.net mvc中上载单个文件而不是多个文件,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我正在尝试使用asp.NETMVC4创建一个网站,在那里我可以将数据存储在MSSQL数据库中,并将上传的图像文件存储在本地存储器中。到目前为止,数据已成功存储,但每当我选择要上载的多个图像时,它仅上载第一个选定的图像。这是我的密码 控制器 [HttpPost] public ActionResult FlatManager(FlatMgt FlatTable, HttpPostedFileBase[] files) { if (Session["username"

我正在尝试使用asp.NETMVC4创建一个网站,在那里我可以将数据存储在MSSQL数据库中,并将上传的图像文件存储在本地存储器中。到目前为止,数据已成功存储,但每当我选择要上载的多个图像时,它仅上载第一个选定的图像。这是我的密码

控制器

[HttpPost]
    public ActionResult FlatManager(FlatMgt FlatTable, HttpPostedFileBase[] files)
    {
        if (Session["username"] != null)
        {
            if (ModelState.IsValid)
            {
                var AddFlat = FlatTable.Flats;
                db.FlatInfoes.Add(AddFlat);
                db.SaveChanges();
                foreach (HttpPostedFileBase file in files)
                {
                    if (file != null && file.ContentLength > 0)
                    {
                        int imageCount = 0;
                        string picName = FlatTable.Flats.flatno.ToString() + "-" + imageCount;
                        string picExt = Path.GetExtension(file.FileName);
                        if (picExt == ".jpg" || picExt == ".gif" || picExt == ".jpeg")
                        {
                            picExt = ".png";
                        }
                        string path = System.IO.Path.Combine(Server.MapPath("~/Images/"), picName + picExt);
                        file.SaveAs(path);
                        imageCount++;
                        using (MemoryStream ms = new MemoryStream())
                        {
                            file.InputStream.CopyTo(ms);
                            byte[] array = ms.GetBuffer();
                        }
                    }
                    else
                    {
                        TempData["add_fail"] = "Error! Wrong File Type(s)! Please Try Again.";
                        return RedirectToAction("FlatManager");
                    }
                }
                TempData["add_success"] = "Information Added Successfully!";
                return RedirectToAction("FlatManager");
            }
            else
            {
                TempData["add_fail"] = "Error! Please Provide Valid Information.";
                return RedirectToAction("FlatManager");
            }
        }
        else
        {
            return RedirectToAction("Login");
        }
    }
查看

@using (Html.BeginForm("FlatManager", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @Html.ValidationSummary(true)
    <label for="file">Upload Image:</label> 
    <input type="file" multiple="multiple" name="files" id="file" style="width: 100%;" /><br />
    <input type="submit" value="Add" />
}
@使用(Html.BeginForm(“FlatManager”,“Home”,FormMethod.Post,new{enctype=“multipart/formdata”}))
{
@Html.ValidationSummary(true)
上载图像:

}

我在代码中找不到任何错误。我怎样才能解决这个问题?如果有人帮忙,会很有帮助的。谢谢。

您是否实际调试过只发送一个文件,或者您的循环中存在
imageCount
问题,因此每个图像文件都以数字0保存?谢谢您的建议。我只是把
intimagecount=0
行放在循环之外&它起作用了。您的猜测是对的,它是以相同的名称保存的,因此图像被替换。