首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >提交后,在asp.net mvc上载文件代码中获取“服务器重置连接”错误

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

Stack Overflow用户
提问于 2010-03-07 00:12:42
回答 2查看 6.8K关注 0票数 16

我读过几个问题,解释了如何在asp.net mvc中处理文件上传。我正在尝试提交文件以及描述它的表单域。这可能就是问题所在。我会去写代码:

查看代码:

代码语言:javascript
复制
<% 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>

<% } %>

控制器代码:

代码语言:javascript
复制
[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-300MB的任何地方。我尝试(在本地)使用的文件相对较小(50 mb左右)。

我知道有人问过我,但我觉得我这里的问题有些不同。当我提交页面时,我看到:

连接已重置

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-07 11:23:20

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

代码语言:javascript
复制
<System.Web>
    <httpRuntime maxRequestLength="value in kilobytes" />
</System.Web>

您还必须注意超时值。

祝你好运!

票数 25
EN

Stack Overflow用户

发布于 2010-03-07 04:58:35

too服务器上可能会发生超时,因为发送文件花费的时间太长。检查您的the服务器的设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2393126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档