我想從畫布捕捉圖片,使其成爲base64並將其保存到數據庫中。是否有可能將base64直接保存到表中? 這是我來了已經:asp.net mvc:將base64圖像數據保存到表格
VIEW:
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
var img = document.getElementById("image0");
ctx.drawImage(img, 0, 0);
//drawing image into myCanvas
var imag = canvas.toDataURL("image/png");
//making base64 from that image
document.getElementById('imag').value = imag;
//passing base64 to @Html.TextAreaFor(model => model.IMG, new {id = "imag"}) prior to submitting
MODEL:
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.ComponentModel.DataAnnotations;
namespace myApp.Models
{
public class MYCLASS
{
public int ...
public string ...
public string IMG { get; set; }
}
}
控制器:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult myImageToDB(MYCLASS myclass)
{
if (ModelState.IsValid)
{
db.MYCLASSs.Add(myclass);
db.SaveChanges();
//here it fails on db.SaveChanges()
return RedirectToAction("Detail", "M35");
}
return View(myclass);
}
交房時我只能從MS VS這樣的回答:
System.Data.Entity.Validation.DbEntityValidationException: Validation failed for one or more entities.
的問題時,我已經加入
public string IMG { get; set; }
到模型中發生。當我現在禁用
document.getElementById('imag').value = imag;
一切正常。
thx
服務器上的模型是什麼樣子的?看起來你已經指定了驗證規則。 –
您的錯誤是EF錯誤,請提供更多詳細信息 –
我已添加一些額外的詳細信息。請讓我知道是否需要更多東西。 thx – nevo