使用EF在MVC .NET核心上上传图像



如何使用ef和图片作为db中的列创建数据库?另外,我需要将图像上传到本地数据库中。我开始使用Microsoft的教程构建应用程序,您可以上传"电影"。https://lealen.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/start-mvc?tabs = aspnetcore2x我该如何从db中显示一些照片,甚至像这样的例子(seeddata.cs(?

您的图像模型类:

        public class YourImageModel
        {
            [Key]
            [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
            public int Id { get; set; }
            public byte[] Image { get; set; }
         }

在控制器中:

public async Task<IActionResult> UploadImage(YourImageModel yourImageModel, IFormFile imageToBeUploaded)
                {
                    if (!ModelState.IsValid)
                    {
                        return View(yourImageModel);
                    }
                   if (imageToBeUploaded != null)
                   {
                      using (var memoryStream = new MemoryStream())
                      {
                        await imageToBeUploaded.CopyToAsync(memoryStream);
                        var imageToBeUploadedByteArray = memoryStream.ToArray();
                        yourImageModel.Image= imageToBeUploadedByteArray ;
                      }
                    }
                    _dbContext.YourImageModel.Add(yourImageModel)
                    await _dbContext.SaveChangesAsync();
                    return View();
                }

您的问题非常广泛,但我将尝试回答要点。为了创建一个存储图像的表格,您需要一个实体,例如:

public class ImageEntity
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
        public string ImageInfo { get; set; }
        public byte[] Image { get; set; }
    }

要上传您的图像,您需要先将其转换为字节[],然后将其以正确格式添加到表中的任何对象相同。要转换为字节[],您可以使用

之类的东西
public byte[] BitmapToByteArray(Bitmap image)
    {
        //converts bitmap to byteArray
        byte[] byteArray;
        using (MemoryStream memoryStream = new MemoryStream())
        {
            image.Compress(Bitmap.CompressFormat.Png, 0, memoryStream);
            byteArray = memoryStream.ToArray();
        }
        return byteArray;
    }

相关内容

  • 没有找到相关文章

最新更新