我试图将两个不同的图像添加到数据库中,但它只添加一个,然后为第二个值添加相同的图像。
这是我将许多照片添加到数据库的控制器
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" />
}
答案 0 :(得分:0)
Request.Files返回HttpFileCollection类型的对象。https://msdn.microsoft.com/en-us/library/system.web.httpfilecollection(v=vs.110).aspx
为了获取文件中的特定文件,您可以通过索引文件[0],文件[1]或命名文件[firstName],文件[secondName]
使用对象的属性
根据您的代码,您只能使用Files对象中的一个文件。
答案 1 :(得分:0)
public ActionResult Create([Bind(Include =&#34; id,title,bodyofarticle&#34;)]文章文章/ ,HttpPostedFileBase文件 /) { if(ModelState.IsValid) { db.articles.Add(物品); db.SaveChanges(); for(int i = 0; i&lt; Request.Files.Count; i ++) { HttpPostedFileBase文件= Request.Files [i]; string saveFileName = Path.GetFileName(file.FileName); string location = Path.Combine(Server.MapPath(&#34;〜/ Images /&#34; + file.FileName)); file.SaveAs(位置); image imag = new image(); imag.url = Url.Content(&#34;〜/ images /&#34; + saveFileName); imag.articleid = article.id; db.image.Add(IMAG); article.images.Add(IMAG);
}
db.SaveChanges();
return RedirectToAction("Index");
}
return View(article);
}
//希望其他人得到好处:)