如何使用AJAX将字节数组发送到服务器端

时间:2013-06-05 11:52:58

标签: javascript ajax asp.net-mvc-4

请原谅我,如果这个问题太愚蠢或者已经问过我google了很多但我没有得到任何我想要的东西。我需要使用ajax将一个字节数组传递给服务器端,但是它没有按计划运行我的当前代码如下所示

var bytes = [];

for (var i = 0; i < data.length; ++i) {
    bytes.push(data.charCodeAt(i));
}

$.ajax({
    url: '/Home/ImageUpload',
    dataType: 'json',
    type: 'POST',
    data:{ data:bytes},
    success: function (response) {
        alert("hi");
    }
}); 

上传方法

    [HttpPost]
    public ActionResult ImageUpload(byte[] data)
    {
                ImageModel newImage = new ImageModel();
                ImageDL addImage = new ImageDL();
                newImage.ImageData = data;
                addImage.AddImage(newImage);
                return Json(new { success = true });

    }

我知道我的程序有问题,但我找不到请帮我解决这个问题

1 个答案:

答案 0 :(得分:3)

最好这样做:

$.ajax({
    url: '/Home/ImageUpload',
    dataType: 'json',
    type: 'POST',
    data:{ data: data}, //your string data
    success: function (response) {
        alert("hi");
    }
}); 

在控制器中:

[HttpPost]
    public ActionResult ImageUpload(string data)
    {
        var bytes = System.Text.Encoding.UTF8.GetBytes(data);
        //other stuff
    }