【发布时间】:2013-12-07 13:04:02
【问题描述】:
我想从画布中捕获图片,将其设为 base64 并将其保存到数据库中。是否可以将base64直接保存到表中? 这是我已经来的地方:
查看:
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
型号:
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:验证 一个或多个实体失败。
我添加的时候出现的问题
public string IMG { get; set; }
进入模型。当我现在禁用时
document.getElementById('imag').value = imag;
一切正常。
谢谢
【问题讨论】:
-
服务器上的模型是什么样的?看来您已经指定了验证规则。
-
您的错误是EF错误,请提供更多细节
-
我添加了一些额外的细节。请让我知道是否需要更多内容。谢谢
-
请查看此问题以了解您的验证错误实际上是什么 - stackoverflow.com/questions/5400530/…
-
Floradu88,Tommy,所以您会说代码本身没有问题,但 EF 有问题吗?汤米,您发布的链接我需要“翻译”,但还没有从那里的答案中得到它:)
标签: c# asp.net-mvc entity-framework html5-canvas base64