He leído varias preguntas que explican cómo manejar cargas de archivos en asp.net mvc. Estoy tratando de enviar tanto el archivo como los campos de formulario que lo describen. Ese podría ser el problema. Voy a ir a escribir el código:Error de "conexión restablecida por servidor" en asp.net mvc cargar código de archivo después de enviar
Ver código:
<% 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>
<% } %>
controlador de código:
[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");
}
He visto varios ejemplos, pero no he encontrado uno que está tratando para enviar un archivo y otros datos de formulario. Algunas otras cosas de la nota es que otros ejemplos parecen no poner un atributo HttpVerb en el método de acción en absoluto y tienen una cadena de parámetros vacía. Los archivos que estoy tratando de aceptar serán archivos de video de varios tipos, pero pueden estar entre 100 y 300 mb. Los archivos que he intentado usar (localmente) han sido bastante pequeños comparativamente (50 o más mb).
Sé que se me ha preguntado, pero siento que mi problema aquí es diferente de alguna manera. Cuando envío la página veo:
La conexión se restableció
La conexión con el servidor se restableció mientras que la página se cargaba.
¿Se ejecuta el código del controlador? – ZippyV
Ahora que lo mencionas, no es así. Tengo varios puntos de quiebre, pero ninguno de ellos se alcanza. Si elimino el tipo de entrada = parte del archivo de la vista, el código se ejecuta correctamente y se alcanza la parte del controlador. – jason
Por cierto, es "ASP.NET", una palabra. –