ASP.NET 核心 IFormFile 验证

ASP.NET Core IFormFile validation

public IFormFile UploadedImage { get; set; }
        <div class="form-group row">
            <label asp-for="UploadedImage" class="ml-2">Image</label>
            <input asp-for="UploadedImage" class="form-control" type="file"/>
            <span asp-validation-for="UploadedImage" class="text-danger"></span>
        </div>

目前用户可以上传任何东西,这会导致后端出现糟糕的情况。

有没有简单明了的方法只允许上传图片?在网上查看一些解决方案看起来绝对可怕,但它们已有 5 年以上的历史,所以也许 .NET 有更好的方法来做到这一点。 比如 [Image] 属性什么的。

您可以尝试使用accept属性。 这是一个演示:

查看:

 <div class="form-group row">
                <label asp-for="UploadedImage" class="ml-2">Image</label>
                <input asp-for="UploadedImage" class="form-control" type="file"  accept="image/png, image/jpeg, image/gif"/>
                <span asp-validation-for="UploadedImage" class="text-danger"></span>
    </div>

当您点击选择文件时,您只能看到 select 类型为 .png,.jpeg,.gif 的文件。

这是我的文件:

当我点击选择文件时: