문제가 있습니다. base64로 DB에 이미지를 저장 했으므로이 이미지가 포함 된이 객체를 편집해야합니다. 이미지는 사용자가 폼에 업로드하고 base64로 변환하여 DB에 저장합니다. 이제 내 문제는 전체 개체를 편집하기 위해 그것을 표시하기 위해 Base64 이미지를 IFormFile로 변환하는 것이 좋습니다.ASP.NET Core MVC base64 이미지를 IFormFile
thnx
문제가 있습니다. base64로 DB에 이미지를 저장 했으므로이 이미지가 포함 된이 객체를 편집해야합니다. 이미지는 사용자가 폼에 업로드하고 base64로 변환하여 DB에 저장합니다. 이제 내 문제는 전체 개체를 편집하기 위해 그것을 표시하기 위해 Base64 이미지를 IFormFile로 변환하는 것이 좋습니다.ASP.NET Core MVC base64 이미지를 IFormFile
thnx
당신은 바이트 []/64 기수를 포함하는 객체/뷰 모델을 얻으려고 노력하는 경우, 은 내가 솔루션을 시간에서 검색하지만 난 내 뷰 모델에 추가 매개 변수를 추가
public class ProductAddVM
{
public int Id { get; set; }
public Categories Category { get; set; }
public decimal Vat { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public IFormFile Image { get; set; }
public Byte[] ByteImage { get; set; }
public string Description { get; set; }
public bool? Available { get; set; }
}
매개 변수 이미지는 언급 한대로 EDIT에 업로드 할 수있는 새 이미지를 저장하는 것입니다. ByteImage 매개 변수는 데이터베이스에서 이전 이미지를 가져 오는 것입니다. 당신은 내가 매퍼를 사용하려고 [] 바이트 및 데이터베이스 에 저장하는 IFormFile을 변환 할 수 있습니다 편집을 완료
는하지만이 코드는 100 % 작동하고, 잘못된하지만 난 거 메이크업을 해요 그것은
internal ProductAddVM GetProduct(int id)
{
var model = new Product();
model = Product.FirstOrDefault(p => p.Id == id);
var viewModel = new ProductAddVM();
viewModel.Id = model.Id;
viewModel.Name = model.Name;
viewModel.Available = model.Available;
viewModel.Description = model.Description;
viewModel.Price = model.Price;
viewModel.Category = (Categories)model.Category;
viewModel.Vat = model.Vat;
viewModel.ByteImage = model.Image;
return viewModel;
}
internal void EditProduct(int id, ProductAddVM viewModel,int userId)
{
var tempProduct = Product.FirstOrDefault(p => p.Id == id);
tempProduct.Name = viewModel.Name;
tempProduct.Available = viewModel.Available;
tempProduct.Description = viewModel.Description;
tempProduct.Price = viewModel.Price;
tempProduct.Category =(int)viewModel.Category;
tempProduct.Vat = CalculateVat(viewModel.Price,(int)viewModel.Category);
if (viewModel.Image != null)
{
using (var memoryStream = new MemoryStream())
{
viewModel.Image.CopyToAsync(memoryStream);
tempProduct.Image = memoryStream.ToArray();
}
}
tempProduct.UserId = userId;
tempProduct.User = User.FirstOrDefault(u => u.Id == userId);
SaveChanges();
}
그것의 더 나은이 사진을 업로드 3000 사용자와 큰 프로젝트에, 나를 위해 작동 봐 –