。NET Core 2:如何检查请求是否为MIME多重内容?

问题描述 投票:5回答:2

在ASp.NET MVC中,您可以检查当前请求是否为MIME多部分内容。如何在.NET Core中进行检查?我有一个动作过滤器来验证这一点,但不确定如何评估请求标头。 .NET Core中不提供IsMimeMultipartContent。

/// <summary>
/// Checks whether the current request specified content is MIME multipart content.
/// </summary>
/// <exception cref="HttpRequestException">Raised when the current request doesn't have MIME multipart content.</exception>
public class HasMimeMultipartContentAttribute : ActionFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext context)
    {
        if (!context.HttpContext.Request.Headers.IsMimeMultipartContent())
            throw new HttpRequestException("This request does not contain any file to upload.");
    }
}
.net asp.net-core asp.net-core-2.0
2个回答
2
投票

ASP.NET MVC Core使用IFormFile接口绑定多部分HTTP请求。如果请求不使用multipart / form-data,则documentation声明绑定值将为null。


0
投票

您可以使用属性HttpRequest.HasFormContentType来检查请求是否为多部分/表单数据

然后使用属性HttpRequest.Form.Files在请求中存在文件

示例:

public async Task Invoke(HttpContext context)
{

    if (context.Request.HasFormContentType && context.Request.Form.Files.Any)
    {

    }
}
© www.soinside.com 2019 - 2024. All rights reserved.