在ASp.NET MVC中,您可以检查当前请求是否为MIME多部分内容。如何在.NET Core中检查?我有一个动作过滤器来验证,但不知道如何评估请求标头。 IsMimeMultipartContent在.NET Core中不可用。
/// <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.");
}
}
答案 0 :(得分:2)
ASP.NET MVC Core使用IFormFile
接口绑定多部分HTTP请求。如果请求不使用multipart / form-data,则documentation表示绑定值为null。
答案 1 :(得分:-1)
您可以使用属性HttpRequest.HasFormContentType
检查请求是否为多部分/表单数据然后使用属性HttpRequest.Form.Files
在请求中显示文件示例:
public async Task Invoke(HttpContext context)
{
if (context.Request.HasFormContentType && context.Request.Form.Files.Any)
{
}
}