我有同样的问题

@using (Html.BeginForm("CreateRequest", "SupportRequest", FormMethod.Post, new { id = "frmStemplate", enctype = "multipart/form-data" }))
{
  <td><input type="file" name="FirstFile" id="FirstFile" class="button"  /> 
  <input  type="button" class="button" id="FirstFileupload"  value="upload" onclick="Javascript:DocumentUpload();"/>
}

<script language="javascript" type="text/javascript">
    function DocumentUpload()
    {
        var BrowseFile = $('#FirstFile').val();

        if (BrowseFile != null && BrowseFile != "") {
            alert(BrowseFile);
            $.ajax({
                type: 'POST',
                dataType: 'json',
                url: '@Url.Content("~/SupportRequest/UploadFiles")?fileElementId=' + BrowseFile,
                success: function (data) {
                    alert('Hi'); //debugger;
                    if (data.Result == "SUCCESS") {
                        alert('Hi');
                    }
                    else {
                        ShowInfo('Document Uploaded Successfully');
                    }
                }
            });
        }
    }
</script>

在控制器方面,我有:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UploadFiles(string fileElementId, FormCollection formColl)
{
    var FirstFile = Request.Files;
    foreach (string upload in Request.Files)
    {
        if (!Request.Files[upload].HasFile()) continue;
        string path = AppDomain.CurrentDomain.BaseDirectory + "uploads/";
        string filename = Path.GetFileName(Request.Files[upload].FileName);
        Request.Files[upload].SaveAs(Path.Combine(path, filename));
    }
    return Json(new { Filename = "" });
}

但是我的Request.Files总是为null

我尝试了几件事,比如将代码更改为Request.Files["FirstFile"]等。每次,文件集合都是空的。

===============>>#1 票数:2

您需要在控制器操作参数中使用HttpPostedFileBase才能获取已发布的filedata。

请阅读Phil Haack 撰写的这篇完整的文章

===============>>#2 票数:0

我使用可以轻松上传文件的表单集合做了不同的方式。就像你在cshtml页面中的开始表单中添加该行一样。

public ActionResult Create([Bind(Include="Id,Name,Pic,ActiveStatus")] FormCollection form)
    {

        string Pic = "";
        var file = Request.Files[0];

        if (file.ContentLength > 0)
        {
            Pic = string.Format("~/Uploads/Category/{0}", file.FileName);
            file.SaveAs(HttpContext.Server.MapPath(Pic));

        }

        ItemCategory obj = new ItemCategory
        {
            Name = form["Name"].ToString(),
            Pic = file.FileName

        };

        db.ItemCategories.Add(obj);
        db.SaveChanges();
        return RedirectToAction("Index");

===============>>#3 票数:0

由于您要创建数据的帖子,因此您需要发布文件数据。 看这篇文章:

如何异步上传文件?

  ask by Shrilata Ellaboina translate from so

未解决问题?本站智能推荐:

1回复

使用ASP.Net MVC的输入类型文件时,Request.Files为空

回发到我的控制器时,我的模型填充了正确的值,我的字符串字段有文件名,但Request.Files为空。 我在视图中的输入是: 我的表单标签以: 还有什么我需要设置将字段发送回控制器吗?
3回复

Request.Files同样的文件上传asp.net mvc

如果我上传多个文件,我会得到相同的文件n次。 我正在使用此控件: https : //github.com/kartik-v/bootstrap-fileinput 我的cs.html http://codepen.io/anon/pen/aekqm 请在上面找到我的完
1回复

使用相同的密钥从Request.Files获取所有文件

我有一些文件在Request.Files对象中具有相同的键,当我使用此代码Request.Files.Keys [“keyName”]时,它只返回一个文件,但我有多个文件与该键。 我该怎么办?! 顺便说一句,我不能使用键名作为参数,因为我不知道究竟是什么键,也许模型绑定器可以帮助在这种情况下
2回复

试图允许用户上传文件; 文件为“空”(ASP.Net / MVC / C#)

我有一个带有表单的页面,该表单允许用户选择要上传的图像(我的模型中为DefectImage )。 不幸的是,即使我肯定选择了一个文件,在控制器中, DefectImage以“空” DefectImage出现。 在我点击“提交”之前,文本框甚至显示了文件名。 模型 视图
2回复

文件上传中的路径问题?

我正在尝试实现一个简单的文件上传,但是有一些麻烦。 当我对路径进行硬编码时,它可以正常工作。 但是由于某种原因,当我尝试使用文件上传时,控制器名称被附加到路径中 硬编码路径(我要获取的路径): 我遇到异常的路径(请注意“ appz”控制器名称): 我的控制器 我
1回复

下载上传的文件MVC 3

我在MVC 3项目中具有上传功能,该功能将文件存储在数据库中。 我正在尝试编写代码,该代码将列出数据库中的所有文件,并带有一个链接来下载每个文件,但是我没有取得太大的成功。 这是控制器代码: 我已经从ActionResult Index创建了一个视图,该视图中的代码是: 我还
2回复

MVC4检索上传的文件

我正在使用ASP.NET MVC4来开发Intranet应用程序。 主要功能之一是允许用户上载将存储在我的数据库中的文件。 为了做到这一点,我正在使用jQuery。 但是,我不知道该如何处理上传的文件。 我已经知道我必须将它们操纵为相应的控制器,但是在阅读了互联网上的一些技巧之后,我只是
1回复

MVC上传多个文件

就像您在我的图中看到的那样,每个Post可以具有多个PostImage 。 如何在ASP.NET MVC中上传图像? 我不知道每个帖子可以包含多少张图片,所以我不喜欢我的方法: 在我上传图片后,我想预览图片, 到目前为止,这就是我所拥有的。 控制器:
1回复

弹出以上传文件MVC

我需要上传一些xml文件。为此,我需要从MVC应用程序中打开一个弹出窗口以加载文件。我在下面编写了代码。在控制器中,我看到了加载的文件。 Upload.cshtml: 控制器: 模型: 现在,“ Upload.cshtml”是一部分,并出现在主页中。 1.如何将其
1回复

通过ExtJS.Ajax.request和ASP.NET MVC上传文件而无需重新加载页面(ajax样式)

我想上传文件没有重新加载页面。 我的服务器端是ASP.NET MVC。 我知道fileupload不适用于ajax。 ExtJS使用IFRAME执行它获得响应后,所有尝试解码它。 如果操作类型是ActionResult或EmptyResult然后触发错误,如果操作类型是JsonRe