4
我遇到了問題。我將一些圖像作爲base64存儲在數據庫中,現在我需要編輯包含此圖像的此對象。該圖像由用戶以表格的形式上傳,並將其轉換爲base64並存儲在數據庫中。現在我的問題很熱,要將base64圖像轉換回IFormFile來顯示它以編輯整個對象。ASP.NET Core MVC base64映像到IFormFile
日Thnx
我遇到了問題。我將一些圖像作爲base64存儲在數據庫中,現在我需要編輯包含此圖像的此對象。該圖像由用戶以表格的形式上傳,並將其轉換爲base64並存儲在數據庫中。現在我的問題很熱,要將base64圖像轉換回IFormFile來顯示它以編輯整個對象。ASP.NET Core MVC base64映像到IFormFile
日Thnx
如果你想獲得一個對象/視圖模型包含一個byte []/BASE64, 我搜索以小時爲一個解決方案,但後來我加入額外的參數到我的視圖模型
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; }
}
參數Image將存儲可能正在上傳的新圖像,如您所述。 雖然參數ByteImage是從數據庫中獲取舊圖像。
的,你完成編輯,你可以轉換IFormFile爲byte [],並將其保存在數據庫 我試圖使用映射器,但它出了問題,這個代碼工作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+用戶 –