HeroKit.FileTypes.AspNetCore
3.7.0
dotnet add package HeroKit.FileTypes.AspNetCore --version 3.7.0
NuGet\Install-Package HeroKit.FileTypes.AspNetCore -Version 3.7.0
<PackageReference Include="HeroKit.FileTypes.AspNetCore" Version="3.7.0" />
<PackageVersion Include="HeroKit.FileTypes.AspNetCore" Version="3.7.0" />
<PackageReference Include="HeroKit.FileTypes.AspNetCore" />
paket add HeroKit.FileTypes.AspNetCore --version 3.7.0
#r "nuget: HeroKit.FileTypes.AspNetCore, 3.7.0"
#:package HeroKit.FileTypes.AspNetCore@3.7.0
#addin nuget:?package=HeroKit.FileTypes.AspNetCore&version=3.7.0
#tool nuget:?package=HeroKit.FileTypes.AspNetCore&version=3.7.0
HeroKit.FileTypes.AspNetCore
ASP.NET Core integration for HeroKit.FileTypes: safe upload checks for IFormFile in minimal APIs, MVC, Razor Pages and Blazor.
dotnet add package HeroKit.FileTypes.AspNetCore
Every check of UploadValidator runs: invalid file names, program or script content (also behind an image extension), hidden double extensions (a.php.jpg), content that does not fit the extension, macros in Office documents, script in SVG, size and allowed types.
Minimal APIs
using HeroKit.FileTypes;
using HeroKit.FileTypes.AspNetCore;
app.MapPost("/documents", (IFormFile file) => Results.Ok(file.GetSafeFileName()))
.ValidateUploads(new UploadPolicy { AllowedTypes = [FileTypes.Pdf], MaxLength = 10 * 1024 * 1024 });
A rejected file stops the request before the handler runs. The response is 400 with a validation problem:
{ "errors": { "file": ["invoice.pdf: The content is a Windows executable."] } }
ValidateUploads also works on a route group and checks IFormFileCollection arguments.
MVC, Razor Pages and Blazor forms
public sealed class ProfileForm
{
[Required, AllowedFileTypes("jpg", "png", "webp", MaxLength = 5 * 1024 * 1024)]
public IFormFile? Photo { get; set; }
}
Anywhere
UploadCheckResult result = file.CheckUpload(policy); // or validator.Validate(file) with a singleton UploadValidator
string displayName = file.GetSafeFileName(); // safe to store and to send as a download name
Documentation: https://herokit.lyconiq.com/articles/file-types.html
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- HeroKit.FileTypes (>= 3.7.0)
-
net8.0
- HeroKit.FileTypes (>= 3.7.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.7.0 | 73 | 10/19/2026 |
First release: IFormFile.CheckUpload, UploadValidator.Validate(IFormFile), IFormFile.GetSafeFileName, [AllowedFileTypes] and the ValidateUploads() endpoint filter.