Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在ASP.Net Core/EF Core中验证图像和上载的最佳实践是什么?_C#_.net_.net Core_Entity Framework Core_Image Upload - Fatal编程技术网

C# 在ASP.Net Core/EF Core中验证图像和上载的最佳实践是什么?

C# 在ASP.Net Core/EF Core中验证图像和上载的最佳实践是什么?,c#,.net,.net-core,entity-framework-core,image-upload,C#,.net,.net Core,Entity Framework Core,Image Upload,我发现了一些问题,如,但它没有满足我的需要。 我有一个名为Movie的模型类,它包含属性 公共字节[]映像{get;set;} 我的观点包含 在控制器中,我将其转换为字节并存储在数据库中。我想验证它,比如允许的文件.jpg、.jpeg、.png和最大文件大小5Mb 如何验证上载的文件?每个文件都有一个扩展名,如果它是二进制文件,则在文件头中有幻数,指示它是什么类型的文件,您可以通过读取字节头来识别文件类型。 检查此GitHub代码 文件头引用: mime类型引用: 请不要发布代码的截图,而是自

我发现了一些问题,如,但它没有满足我的需要。 我有一个名为Movie的模型类,它包含属性

公共字节[]映像{get;set;}

我的观点包含

在控制器中,我将其转换为字节并存储在数据库中。我想验证它,比如允许的文件.jpg、.jpeg、.png和最大文件大小5Mb


如何验证上载的文件?

每个文件都有一个扩展名,如果它是二进制文件,则在文件头中有幻数,指示它是什么类型的文件,您可以通过读取字节头来识别文件类型。 检查此GitHub代码 文件头引用:

mime类型引用:

请不要发布代码的截图,而是自己发布代码好的,我会编辑我的问题,谢谢反馈,为什么不检查文件名和已知图像扩展名的扩展名??为了检查大小,请查看..我的意思是你可以使用FileInfo.Length并设置if条件,注意,length将以字节为单位返回文件大小,您可能需要进行转换并在屏幕上显示?找回它?
<form asp-action="Index" method="post" enctype="multipart/form-data">
  <input asp-for="Image" type="file" id="files" class="form-control" />
  <input type="submit" value="Create" class="btn btn-default" />
</form>
[HttpPost]
    public async Task<IActionResult> Index(Movie Movie, List<IFormFile> Image)
    {
        foreach(var item in Image)
        {
            if (item.Length > 0)
            {
                using (var stream = new MemoryStream())
                {
                    await item.CopyToAsync(stream);
                    Movie.Image = stream.ToArray();
                }
            }
        }
        _applicationDbContext.Movie.Add(Movie);
        _applicationDbContext.SaveChanges();
        return View();
    }