Ich habe mehrere Fragen zu lesen, wie mit Datei-Uploads in asp.net mvc umzugehen. Ich versuche, sowohl die Datei als auch die Formularfelder, die es beschreiben, einzureichen. Das könnte das Problem sein. Ich werde den Code gehen schreiben:Erhalten von 'Verbindung zurückgesetzt von Server' Fehler in asp.net MVC-Upload-Datei-Code nach dem Senden
anzeigen Code:
<% using (Html.BeginForm("CreateFile", "Video", FormMethod.Post, new { enctype = "multipart/form-data" }))
{%>
<fieldset>
<legend>Fields</legend>
<p>
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
</p>
<p>
<label for="Password">Password:</label>
<%= Html.TextBox("Password")%>
<%= Html.ValidationMessage("Password", "*")%>
</p>
<p>
<label for="Description">Description:</label>
<%= Html.TextBox("Description")%>
<%= Html.ValidationMessage("Description", "*")%>
</p>
<p>
<label for="DateUploaded">DateUploaded:</label>
<%= Html.TextBox("DateUploaded")%>
<%= Html.ValidationMessage("DateUploaded", "*")%>
</p>
<p>
<label for="DateRecorded">DateRecorded:</label>
<%= Html.TextBox("DateRecorded")%>
<%= Html.ValidationMessage("DateRecorded", "*")%>
</p>
<p>
<input type="submit" value="Submit" />
</p>
</fieldset>
<% } %>
Controller-Code:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult CreateFile(VideoDTO video, HttpPostedFileBase f) //[Bind(Exclude="VideoId")]
{
foreach (string file in Request.Files)
{
HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
if (hpf.ContentLength == 0)
continue;
string savedFileName = Server.MapPath("Videos") + Path.GetFileName(hpf.FileName);
hpf.SaveAs(savedFileName);
video.FileName = hpf.FileName;
}
repository.CreateVideo(video);
return RedirectToAction("Index");
}
ich einige Beispiele gesehen haben, aber sind nicht gekommen, über eine, die versucht, um sowohl eine Datei als auch andere Formulardaten einzureichen. Einige andere bemerkenswerte Dinge sind andere Beispiele, die anscheinend kein HttpVerb-Attribut für die Aktionsmethode bereitstellen und eine leere Parameterzeichenfolge haben. Die Dateien, die ich akzeptieren möchte, sind Videodateien verschiedener Typen, aber sie können irgendwo zwischen 100 und 300 MB liegen. Die Dateien, die ich (lokal) verwenden wollte, waren vergleichsweise klein (50 oder so mb).
Ich weiß, es wurde gefragt, aber ich fühle mich wie mein Problem hier irgendwie anders ist. Wenn ich die Seite einreichen Ich sehe:
Die Verbindung wurde zurückgesetzt wurde
Die Verbindung zum Server zurückgesetzt , während die Seite geladen wurde.
Wird der Controllercode ausgeführt? – ZippyV
Nun, da Sie es erwähnen, tut es das nicht. Ich habe mehrere Haltepunkte, aber keiner von ihnen wird jemals erreicht. Wenn ich den Eingangstyp = Datei-Teil der Ansicht entferne, läuft der Code gut und der Controller-Teil ist erreicht. – jason
BTW, es ist "ASP.NET", ein Wort. –