私は MVC3 で複数のファイルのアップロードを実装しています。実装に成功しました。データベースにも値を挿入する必要があります。モデル クラスにはリストがあります。データベースに挿入する際に問題がありました。エントリ、私はこの問題を修正しました。現在、最初の画像のみがデータベースに挿入されているという問題が発生しています。以下は私のコードです
public ActionResult CreateCard(FlashCardsModel model, IEnumerable<HttpPostedFileBase> files)
{
string path = "";
string upath = ConfigurationManager.AppSettings["imgpath"];
long SetId = 0;
for (int i = 0; i < model.GroupIds[0].Split(',').Length; i++)
{
model.Visibleto = Convert.ToInt32(model.Privacy);
var groupid = Convert.ToInt64(model.GroupIds[0].Split(',')[i]);
SetId = Repository1.CreateSet(model.Title, model.Description, model.Visibleto, Convert.ToInt64(Session["uid"].ToString()), groupid);
if (SetId != 0)
{
foreach (var item in model.CardContent)
{
foreach (var file in files)
{
if (file != null && file.ContentLength > 0)
{
if (file.ContentLength > 0)
{
var fileName = Path.GetFileName(file.FileName);
if (IsImage(file.FileName.ToString()))
{
fileName = "FlashCard_Image_" + Session["uid"].ToString() + "_" + fileName;
path = Path.Combine(Server.MapPath(upath), fileName);
file.SaveAs(path);
item.ImagePath = fileName;
if (item.Answer != null && item.Term != null)
{
var savecontent = Repository1.AddCardContent(item.Term, item.Answer, item.ImagePath, SetId);
break;//It breaks the loop but when it comes to foreach (var file in files) its taking first image each time
}
}
else
{
TempData["Errors"] = "Only JPEG,GIF and PNG images are allowed";
return View("CreateFlashCardSet", model);
}
}
}
}
}
}
}
TempData["Success"] = "Card Created Successfully";
return View("CreateFlashCardSet", model);
}
ループを中断しますが、中断後、foreach (ファイル内の var ファイル) に関しては、毎回最初のイメージを取得します。この問題を処理する方法