将图像src发布到MVC控制器

时间:2018-11-15 10:03:35

标签: c# jquery asp.net-core file-upload asp.net-core-mvc

我试图将图像元素的内容发布到我的控制器,以便可以使用元素将其存储在数据库中。

图像src格式如下:

  

数据:图像/ GIF; BASE64,iVBORw0KGgoAAAANSUhEUgAAAMUAAAEACAYAAAADarJDAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAFCxJREFUeJzt3XuUnHV9x / HP9zuzu0kAEUKicqyGGsAbF41ELAm7syG7swmCye5ka22otF6rYqmKp3houng5R9GDtl4OwvFCC6e72QkihMwmZGc3IWop0SqXQ2qUtV6qyQZSkkAu83y // SM7usRNMjPP73l + z8x + X39yTr7PN + R57zO3fQYwxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMYlGvheYLhbctqDp1DNeMhspOosomE2qpxNRSxCghYFmENJQlJRxiAmHVfUQNLUXGuyh5u

这是我的JavaScript:

$("#submit").click(function () {
    var data = new FormData();
    data.append("image", $('#myImage').attr.src);
    $.ajax({
        url: "/default/upload/",
        type: "POST",
        processData: false,
        contentType: false,
        data: data,
        success: function (response) {
            //code after success
            alert("succes");
        },
        error: function (er) {
            alert(er);
        }
 });

这是我的控制器方法:

[HttpPost]
public void Upload(string image)
{
    Console.WriteLine("Do Something");
}

触发了我的断点,但是我的图像字符串仅包含undefined

2 个答案:

答案 0 :(得分:1)

我认为问题出在这一行:

data.append("image", $('#myImage').attr.src);

解决方法是:

data.append("image", $('#myImage').attr('src'));

// or if you're using jquery version 1.6 or later
data.append("image", $('#myImage').prop('src'));
  

触发了我的断点,但是我的图像字符串仅包含undefined

这是因为$('#myImage').attr.src返回了undefined。然后,您将该值发送到服务器。当然,image抓住了undefined的价值。

答案 1 :(得分:0)

首先,您可以通过从src字符串中删除data:image/gif;base64;来将图像src作为原始字符串发布到控制器

然后将base64字符串转换为二进制并保存到数据库

byte[] imageBinary = Convert.FromBase64String(srcBase64String);