use*_*152 2 c# asp.net-core-mvc asp.net-core
我的代码:
public class Employee
{
public int EmployeeId { get; set; }
public string FullName { get; set; }
public byte[] AvatarImage { get; set; }
}
public class EmployeeVm
{
public int EmployeeId { get; set; }
public string FullName { get; set; }
public IFormFile AvatarImage { get; set; }
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(EmployeeVm model)
{
if (ModelState.IsValid)
{
var employees = new Employee
{
FullName = model.FullName
};
using (var memoryStream = new MemoryStream())
{
employees.AvatarImage = memoryStream.ToArray();
await model.AvatarImage.CopyToAsync(memoryStream);
}
_context.Add(employees);
await _context.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
我得到的只是
nullReferenceException: 未将对象引用设置为对象的实例。等待 model.AvatarImage.CopyToAsync(memoryStream);
我是 asp.net core 的新手,我不明白 asp.net core 如何处理MemoryStream.
您必须先将 IFormFile 内容存储到内存流中。内存流对象是空的,所以调用它memoryStream.ToArray()是带来空值的原因。在调用上面的方法之前,先将上传的头像分配给它。
using (var memoryStream = new MemoryStream())
{
await model.AvatarImage.CopyToAsync(memoryStream);
employees.AvatarImage = memoryStream.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7674 次 |
| 最近记录: |