2016-07-09 26 views
2

Ich versuche, zwei verschiedene Bilder zu einer Datenbank hinzuzufügen, aber es fügt nur eins hinzu und fügt dann das gleiche für den zweiten Wert hinzu.Hinzufügen von Bildern zur Datenbank

Dies ist die Steuerung, die ich viele Fotos zu Datenbank

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

Hier ist die Ansicht

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

Antwort

0

Request.Files zurückkehrt HttpFileCollection gibt ein Objekt hinzufügen. https://msdn.microsoft.com/en-us/library/system.web.httpfilecollection(v=vs.110).aspx
Um bestimmte Dateien in den Dateien zu erhalten, können Sie die Eigenschaften des Objekts nach Index Files [0], Files [1] oder benannte Files [firstName], Files [secondName]
verwenden Nach Ihrem Code arbeiten Sie nur mit nur eine Datei im Files-Objekt.

+0

Entschuldigung, mein Herr, aber ich bin mit String-Datei, um die Namen der Dateien in der Anfrage zu bekommen habe ich versucht, Ihren Weg, um die ganze Zahl unter Verwendung von anstelle von string, aber eine Ausnahme ist hier die Ausnahme: "Eine Ausnahme vom Typ 'System.InvalidCastException' ist in WEBSITI.dll aufgetreten, wurde aber nicht im Benutzercode verarbeitet Weitere Informationen: Angegebener Cast ist nicht gültig." ich bin wirklich dankbar, dass Sie mir helfen und geben Sie mir einige Ihrer Zeit –

+0

Dateien [0] gibt HttpPostedFile Typ Objekt.Lesen Sie Details dieses Objekts von https://msdn.microsoft.com/en-us/library /system.web.httpptostedfile(v=vs.110).aspx – Mehmet

0

public Action erstellen ([Bindung (Include = "id, titel, bodyofarticle")] Artikel/, HttpPostedFileBase/file) { if (ModelState.IsValid) { db.articles.Add (Artikel); db.SaveChanges(); für (int i = 0; i < Request.Files.Count; i ++) { HttpPostedFileBase-Datei = Request.Files [i]; Zeichenfolge saveFileName = Path.GetFileName (file.FileName); Zeichenfolge Speicherort = Path.Combine (Server.MapPath ("~/Images /" + file.FileName)); file.SaveAs (Standort); image imag = neues Bild(); imag.url = Url.Content ("~/images /" + saveFileName); imag.articleid = article.id; db.image.Add (imag); article.images hinzufügen (imag);

  } 


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

     return View(article); 
    } 

// wollen den Rest die Vorteile bekommen :)

Verwandte Themen