Я прочитал несколько вопросов, объясняющих, как обрабатывать загрузки файлов в asp.net mvc. Я пытаюсь представить как файл, так и поля формы, описывающие его. Это может быть проблемой. Я напишу код:
Просмотр кода:
<% 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>
<% } %>
Код контроллера:
[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");
}
Я видел несколько примеров, но не сталкивался с тем, что пытается представить как файл, так и другие данные формы. Некоторые другие примечания - другие примеры, похоже, не помещают атрибут HttpVerb в метод действия вообще и имеют пустую строку параметров. Файлы, которые я собираюсь принять, будут видеофайлы разных типов, но они могут быть где угодно от 100-300 мб. Файлы, которые я пытался использовать (локально), были сравнительно небольшими (50 или около того).
Я знаю, что меня спросили, но я чувствую, что моя проблема здесь как-то другая. Когда я отправляю страницу, я вижу:
Соединение было reset
Соединение с сервером было resetпока страница загружалась.