2016-07-09 8 views
2

2つの異なる画像をデータベースに追加しようとしていますが、1つを追加して2つ目の値に同じ画像を追加するだけです。 データベースに画像を追加する

この

はここ

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

答えて

0

Request.Filesは、オブジェクトを入力HttpFileCollectionを返し図であり、私はデータベース

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"); 
} 

に多くの写真を追加するコントローラです。 https://msdn.microsoft.com/en-us/library/system.web.httpfilecollection(v=vs.110).aspx
ファイル内の特定のファイルを取得するために、オブジェクトのプロパティをインデックス[0]、ファイル[1]または名前付きファイル[firstName]、ファイル[secondName]
で使用することができます。 Filesオブジェクト内のファイルは1つだけです。

公共のActionResultは([バインド(= "ID、タイトル、bodyofarticle" を含む)]記事の記事/ 、HttpPostedFileBaseファイル /) {IF(ModelState.IsValid) {db.articles.Addを(作成
+0

は私に先生の言い訳を取得、残りを望むが、私は整数を使って、あなたの方法を試してみました、要求内のファイルの名前を取得するために、文字列ファイルを使用しています"System.InvalidCastException型の例外がWEBSITI.dllで発生しましたが、ユーザーコードでは処理されませんでした。 追加情報:指定されたキャストは無効です"と例外が発生しました。 あなたが私を助けてくれてありがとうと本当に感謝しています –

+0

ファイル[0]はHttpPostedFileタイプのオブジェクトを返します。このオブジェクトの詳細はhttps://msdn.microsoft.com/en-us/libraryから読んでください/system.web.httppostedfile(v=vs.110).aspx – Mehmet

0

記事); db.SaveChanges(); (int i = 0; i < Request.Files.Count; i ++) { HttpPostedFileBase file = Request.Files [i]; string saveFileName = Path.GetFileName(file.FileName); 文字列の場所= Path.Combine(Server.MapPath( "〜/ Images /" + file.FileName)); file.SaveAs(location); イメージイメージ=新しいイメージ(); imag.url = Url.Content( "〜/ images /" + saveFileName); imag.articleid = article.id; db.image.Add(imag); article.images.Add(imag);

  } 


       db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 

     return View(article); 
    } 

//がメリット:)

関連する問題