在ASP.NET Core EF中,将varbinary格式的图像上传到SQL是一个常见的需求。下面是一些关键步骤和示例代码:
- 创建一个“Image”模型,并在数据库中创建相应的表:
public class Image
{
public int Id { get; set; }
public string Name { get; set; }
public byte[] Data { get; set; }
}
- 在“Startup.cs”文件中添加以下代码,以允许上传大文件:
services.Configure(options =>
{
options.MaxRequestBodySize = int.MaxValue;
});
- 在控制器中添加以下代码,以接收文件并将其保存为varbinary类型:
[HttpPost]
public async Task Upload(IFormFile file)
{
using (var memoryStream = new MemoryStream())
{
await file.CopyToAsync(memoryStream);
var imageData = memoryStream.ToArray();
var image = new Image { Name = file.FileName, Data = imageData };
_dbContext.Images.Add(image);
await _dbContext.SaveChangesAsync();
}
return RedirectToAction("Index");
}
- 在视图中添加以下代码,以允许用户上传文件:
通过以上关键步骤和示例代码,可以在ASP.NET Core EF中将varbinary格式的图像上传到SQL。