Entity framework 使用EF在MVC.NET内核中上载图像
如何使用EF创建数据库,并将info和picture作为db中的列?我还需要上传到本地数据库的图像。我开始用微软的教程来创建应用程序,你可以上传“电影”。Entity framework 使用EF在MVC.NET内核中上载图像,entity-framework,model-view-controller,asp.net-core,local-database,Entity Framework,Model View Controller,Asp.net Core,Local Database,如何使用EF创建数据库,并将info和picture作为db中的列?我还需要上传到本地数据库的图像。我开始用微软的教程来创建应用程序,你可以上传“电影”。 我如何显示db中的一些照片,即使是像下面这样的示例(SeedData.cs)中的硬编码照片?您的问题非常广泛,但我将尝试回答要点。 要创建用于存储图像的表,您需要以下实体: public class ImageEntity { [Key] [DatabaseGenerated(DatabaseGener
我如何显示db中的一些照片,即使是像下面这样的示例(SeedData.cs)中的硬编码照片?您的问题非常广泛,但我将尝试回答要点。 要创建用于存储图像的表,您需要以下实体:
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;
}
你的问题很广泛,但我将尝试回答主要问题。 要创建用于存储图像的表,您需要以下实体:
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;
}
您的图像模型类:
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();
}
公共异步任务上载映像(YourImageModel YourImageModel,IFormFile imageToBeUploaded)
{
如果(!ModelState.IsValid)
{
返回视图(yourImageModel);
}
如果(imageToBeUploaded!=null)
{
使用(var memoryStream=new memoryStream())
{
等待图像被上传。复制到同步(memoryStream);
var imageToBeUploadedByteArray=memoryStream.ToArray();
yourImageModel.Image=imageToBeUploadedByteArray;
}
}
_dbContext.YourImageModel.Add(YourImageModel)
wait_dbContext.saveChangesSync();
返回视图();
}
您的图像模型类:
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();
}
公共异步任务上载映像(YourImageModel YourImageModel,IFormFile imageToBeUploaded)
{
如果(!ModelState.IsValid)
{
返回视图(yourImageModel);
}
如果(imageToBeUploaded!=null)
{
使用(var memoryStream=new memoryStream())
{
等待图像被上传。复制到同步(memoryStream);
var imageToBeUploadedByteArray=memoryStream.ToArray();
yourImageModel.Image=imageToBeUploadedByteArray;
}
}
_dbContext.YourImageModel.Add(YourImageModel)
wait_dbContext.saveChangesSync();
返回视图();
}
我已经编辑了这个问题,我看到了它是如何工作的,但是缺少了一些东西,我猜这个问题已经解决了吗?应该看到什么?我已经编辑了这个问题,我看到了它是如何工作的,但是缺少了一些东西,我猜这个问题已经解决了吗?我们应该看到什么?