Ich habe ein Formular, aus dem Benutzer ein Immobilieninserat hinzufügen können. Neben den Daten, die der Benutzer eingeben muss, kann der Benutzer auch eine Reihe von Bildern hochladen. Ich verwende das HTML5 multiple-Attribut, um Benutzern das Hochladen von mehr als einer Datei auf einmal zu ermöglichen.
Aus irgendeinem Grund wird die HttpPost Add Methode, die ich habe, immer ausgelöst, wenn ich ein Bild hochlade. Wenn ich jedoch versuche, mehrere Bilder hochzuladen, wird die Methode nicht ausgelöst. Bisher erhalte ich keine Fehler, daher bin ich mir nicht sicher, was mit meiner Implementierung falsch ist.
HTML
@using (Html.BeginForm("AddProperty", "User", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
Immobilie
Titel
Beschreibung
@* ... weitere Eingabefelder... *@
Bilder
}
Controller
[HttpPost]
public ActionResult AddProperty(FormCollection form, IEnumerable file)
{
Property p = new Property();
p.Title = form["title"];
p.Description = form["desc"];
// ... Property-Felder setzen
new PropertiesBL().AddProperty(p);
for (int i = 0; i < file.Count(); i++)
{
// ... Schleife und hochgeladene Datei(en) speichern
}
}
Über jede Hilfe würde ich mich freuen.
Änderung - Weitere Tests
Um den Datei-Upload zu testen, habe ich eine neue Ansicht erstellt mit nur einem Formular, das einen Datei-Upload enthält. Ich habe versucht, verschiedene Dateitypen hochzuladen. Was mir aufgefallen ist, ist, dass beim Hochladen zum Beispiel von 10 Dokumenten die Upload-Methode ausgeführt wurde. Aber beim Versuch, 3 (große) Bilder hochzuladen, wurde sie nicht ausgeführt. Ich denke, dass es eine Art Begrenzung in Bezug auf die Gesamtzahl der hochgeladenen Bytes gibt... Ich bin mir jedoch nicht sicher, ob das Sinn ergibt.
Einfacher Test
[HttpPost]
public ActionResult Upload(IEnumerable images)
{
return RedirectToAction("Index");
}
Ich habe auch versucht, mehrere Dateien separat hochzuladen. Wenn ich versuche, 3 große Bilder (jedes Bild ca. 2 MB) hochzuladen, wurde die Methode nicht ausgeführt. Ich bin mir ziemlich sicher, dass dies ein Problem im Zusammenhang mit irgendeiner Art von maximaler Gesamtdateigröße ist.