What problem does it solve? File uploads in ASP.NET Core minimal APIs fail in confusing ways: mismatched size limits between Kestrel and form options, unexpected 400 errors from automatic anti-forgery validation, and security holes from trusting user-supplied filenames and content types. This Skill provides correct, production-aware patterns for handling IFormFile binding, size limits, validation, and large-file streaming. ## Core Features & Use Cases - Correct IFormFile Binding: Shows how IFormFile and IFormFileCollection bind from multipart/form-data, including when [FromForm] attributes are required. - Dual Size Limit Configuration: Configures both Kestrel MaxRequestBodySize and FormOptions.MultipartBodyLengthLimit, plus per-endpoint overrides with RequestSizeLimit. - Secure Validation: Validates file content via magic bytes instead of trusting extensions, and generates safe filenames to prevent path traversal. - Large File Streaming: Uses MultipartReader to stream large uploads directly to disk without buffering. - Use Case: You are building a .NET 8 API endpoint that accepts image uploads and keep getting 400 errors; this Skill identifies the anti-forgery cause and shows the correct DisableAntiforgery pattern. ## Quick Start Use the minimal-api-file-upload skill to create a secure file upload endpoint in my ASP.NET Core minimal API with a 10 MB size limit and JPEG/PNG validation.