我试图将图像元素的内容发布到我的控制器,以便可以使用元素将其存储在数据库中。
图像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
答案 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);