【问题标题】:Request.Files[""] Keep returning nullRequest.Files[""] 继续返回 null
【发布时间】:2013-11-19 12:32:27
【问题描述】:

使用 uploadify 自动提交用户文件,在我的控制器方法中 Request.Files["Name"] 一直返回 null 但 request.form 不为 null,我可以在设置断点时看到 request.form 中的文件并调试它。我错过了什么吗?我正在 mvc2 上对此进行测试,但我计划在 mvc4 上使用它。

<link href="../../Content/uploadify.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script src="../../Scripts/jquery.uploadify.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {
        $('#file_upload').uploadify({
            'swf': '/Content/uploadify.swf',
            'uploader': '/Home/UploadFile',
            'auto': true


            // Your options here
        });
    });
</script>
 </head>
   <body>           
   <%--<% using (Html.BeginForm("UploadFile", "Home", FormMethod.Post,
 new { enctype = "multipart/form-data" }))
 { %>--%>
  <input type="file" name="file_upload" id="file_upload" style="margin-bottom: 0px" />

 <%-- <% } %>--%>

控制器方法:

    [HttpPost]
    public ActionResult UploadFile(HttpPostedFileBase file)
    {           
        var theFile = Request.Files["file_upload"];
        return Json("Success", JsonRequestBehavior.AllowGet);
    }

如果我添加一个提交按钮然后提交它,它会起作用。我需要自动,但没有提交按钮。

【问题讨论】:

  • 我不熟悉uploadify。但是,当您拥有表单时,您似乎在显式使用 POST 方法,而 action 方法仅响应 POST 请求。有没有可能uploadify正在做一个GET???

标签: c# html asp.net-mvc uploadify


【解决方案1】:

IIRC Uploadify 使用 fileData 作为参数。所以:

var theFile = Request.Files["fileData"];

甚至更好:

[HttpPost]
public ActionResult UploadFile(HttpPostedFileBase fileData)
{          
    // The fileData parameter should normally contain the uploaded file
    // so you don't need to be looking for it in Request.Files
    return Json("Success", JsonRequestBehavior.AllowGet);
}

当然,如果您对该名称不满意,您可以随时使用fileObjName 设置对其进行自定义。

【讨论】:

  • 是的,你的权利。谢谢。我在他们的教程中没有看到任何关于必须这样做的内容。欣赏它。为什么会这样呢?
  • 好吧,他们必须选择一些默认值来发送文件,不是吗?为什么他们选择fileData 而不是foo_bar_baz 是一个难以回答的问题。正如您在 multipart/form-data 规范中所知道的(如果您正在进行 Web 开发,您无疑已经阅读并熟悉该规范)每个上传的文件都与一个唯一的密钥相关联,服务器可以使用该密钥从请求中检索。
  • 是的,我是 web 开发中文件上传的新手。我已经在桌面开发中完成了它,这更加困难
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-23
  • 2012-10-17
相关资源
最近更新 更多