Simple file upload returns NULL?

前端 未结 1 479
被撕碎了的回忆
被撕碎了的回忆 2021-01-24 13:54

I\'m trying to do my first simple file upload in MVC 5. I\'m following a bunch of examples I\'ve found but for some reason in my \"Create\" ActionResult the uploadFile is always

相关标签:
1条回答
  • 2021-01-24 14:06

    Your file input element's name should match to your action method parameter name.

    So update your HTML markup to have the same name attribute value.

    <input type="file" name="uploadFile" value="" multiple="multiple" />
    

    and your action method will be

    [HttpPost]
    public ActionResult Create(HttpPostedFileBase uploadFile)
    {
      // do something
    }
    

    Or change your action method parameter name to match with your file input element name.

    <input type="file" name="files" value="" multiple="multiple" />
    

    and your action method will be

    [HttpPost]
    public ActionResult Create(HttpPostedFileBase files)
    {
        if(files!= null && files.ContentLength > 0)
        {
           // do something
        }
    }
    

    When you add multiple="multiple" attribute to the input element, the browser will allow the end user to select more than one file at a time. In that case If your action method parameter is a single instance of HttpPostedFileBase object, It will receive the first file from the selected n files. If you want all the files, You may change your parameter to a collection such as

    [HttpPost]
    public ActionResult Create(IEnumerable<HttpPostedFileBase> files)
    {
        if (files != null && files.Any())
        {
            foreach (var file in files)
            {
                if (file.ContentLength > 0)
                {
                    //do something
                }
            }
        }
    }
    
    0 讨论(0)
提交回复
热议问题