我试图将两个不同的图像添加到数据库中,但它只添加一个,然后为第二个值添加相同的图像。

这是我向数据库添加很多照片的控制器

public ActionResult Create([Bind(Include = "id,title,bodyofarticle")] article article )
{
    if (ModelState.IsValid)
    {
         db.articles.Add(article);
         db.SaveChanges();
        foreach (string file in Request.Files)
        {
            HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;

            string saveFileName = Path.GetFileName(hpf.FileName);
            string location = Path.Combine(Server.MapPath("~/Images/" + hpf.FileName));
            Request.Files[file].SaveAs(location);
            image imag = new image();
            imag.url = Url.Content("~/images/" + saveFileName);
            imag.articleid = article.id;
            db.image.Add(imag);
            article.images.Add(imag);
            db.SaveChanges();

        }
    }
    return RedirectToAction("Index");
}


这是视图

@using (Html.BeginForm( "Create", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
  <input type="file" multiple=multiple id="file" name="files" />
}

最佳答案

Request.Files返回HttpFileCollection类型的对象。https://msdn.microsoft.com/en-us/library/system.web.httpfilecollection(v=vs.110).aspx
为了在文件中获取特定文件,您可以通过索引Files [0],Files [1]或命名为Files [firstName],Files [secondName]来使用对象的属性。
根据您的代码,您只能使用Files对象中的一个文件。

关于c# - 将图像添加到数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38286761/

10-17 01:44