HTML文件上传器没有在控制器页面上提供文件

本文关键字:文件 控制器 HTML | 更新日期: 2023-09-27 18:12:09

我使用html文件上传器作为:

<form action="@Url.Action("ApiUploadImage","PP")" method="POST" id="frmObservationScoring">
                        <input type="file" name="fUploadedFiles"><br>
                        <button class="buttoncss">Upload</button>
</form>

和PPController中的ApiUploadImage方法为:

public void ApiUploadImage([DataSourceRequest] DataSourceRequest request, IEnumerable<HttpPostedFileBase> files)
{
    var savedFilePaths = new List<string>();
    var applicationPath = System.Web.HttpContext.Current.Request.Url.Scheme + "://" + System.Web.HttpContext.Current.Request.Url.Authority + System.Web.HttpContext.Current.Request.ApplicationPath + "/Content/Images/Others/";
    if (files != null)
    {
        foreach (var file in files)
        {
            var fileName = Path.GetFileName(file.FileName);
            if (fileName != null)
            {
                fileName = DateTime.Now.ToString("yyyyMMddmm-") + fileName;
                var imagePath = Path.Combine(Server.MapPath("~/Content/Images/Others/"), fileName);
                file.SaveAs(imagePath);
                savedFilePaths.Add(applicationPath + fileName);
            }
        }
    }
    //return Json(new[] { savedFilePaths }.ToDataSourceResult(request));
}

方法正在被调用,但是,

IEnumerable<HttpPostedFileBase> files参数给出空值,尽管我通过html文件上传器上传任何文件。

有什么问题吗?

请帮帮我。

HTML文件上传器没有在控制器页面上提供文件

在你的HTML中name应该是files以匹配控制器

<input type="file" name="files">

谢谢!

在你的html中,你应该像下面这样添加enctype属性:

<form action="@Url.Action("ApiUploadImage","PP")" enctype="multipart/form-data" method="POST" id="frmObservationScoring">