Dot-Net
.NET Core 2:如何檢查請求是否為 MIME 多部分內容?
在 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."); } }
ASP.NET MVC Core 使用該
IFormFile介面綁定多部分 HTTP 請求。如果請求不使用 multipart/form-data,文件說明綁定值將為空。
您可以使用屬性HttpRequest.HasFormContentType檢查請求是多部分/表單數據
然後使用屬性HttpRequest.Form.Files在請求中存在文件
例子:
public async Task Invoke(HttpContext context) { if (context.Request.HasFormContentType && context.Request.Form.Files.Any) { } }