将图像作为字节流通过Ajax传递给控制器​​ - Mvc4

时间:2015-04-30 13:03:57

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

我们可以将图像作为二进制流传递给控制器​​吗?

<img src="something.png">

这需要使用字节流传递给Controller。

我该如何实施呢?

1 个答案:

答案 0 :(得分:0)

首先,您需要使用客户端的以下行获取该图像的字节

var myImage = document.getElementById('myimage');
var myCanvas = document.getElementById('mycanvas');

var ctx = myCanvas.getContext('2d');

ctx.drawImage(myImage, 0, 0);

var mydataURL=myCanvas.toDataURL('image/png');

mydataURL从ajax传递给控制器​​string

示例:

<img id="myimage" src="something.png" />
<canvas width="300" height="300" id="mycanvas" style="display: none;"></canvas>

Ajax代码:

$.ajax({
   type: "POST",
   url: "YourAction/YourMethod",
   data:'{DataUrl:'+ mydataURL +'}',
   contentType: "application/json; charset=utf-8",
   datatype: "json",
   success:function(response){
    // alert(response.d); whatever you want to return as message.
   }
});

控制器代码

public string YourMethod(string DataUrl){
  // your logic
 return "Success!!!";
}