提交后,在asp.net mvc上传文件代码中获取"服务器连接重置"错误

jas*_*son 16 asp.net asp.net-mvc

我已经阅读了几个问题,解释了如何在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>

<% } %>
Run Code Online (Sandbox Code Playgroud)

控制器代码:

[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");            
}
Run Code Online (Sandbox Code Playgroud)

我已经看过几个例子,但没有遇到过试图同时提交文件和其他表单数据的例子.其他一些值得注意的事情是其他示例似乎根本没有在action方法上放置HttpVerb属性并且有一个空参数字符串.我想接受的文件将是各种类型的视频文件,但它们可以是100-300 mb的任何地方.我试图使用的文件(本地)比较小(50左右).

我知道有问题,但我觉得我的问题在某种程度上是不同的.当我提交页面时,我看到:

连接被重置

页面加载时重置了与服务器的连接.

uvi*_*ita 25

您是否在web.config中调整了maxRequestLength?问题是请求大小大于您提供的值.更改web.config的system.web配置部分的httpRuntime部分中的maxRequestLength以接受更大的值.

<System.Web>
    <httpRuntime maxRequestLength="value in kilobytes" />
</System.Web>
Run Code Online (Sandbox Code Playgroud)

您还必须注意超时值.

祝好运!.