如何通过asp.net mvc中的xmlhttprequest发送blob数据

时间:2013-05-09 05:07:27

标签: c# jquery xmlhttprequest

我通过Xhr发送blob数据。但我没有在控制器中获取blob数据

我编写的代码如下:

var url = "Home/Content"
var oReq = new XMLHttpRequest();
oReq.open("POST", url, true);
var blob = new Blob(['abc123'], {type: 'text/plain'}); 
oReq.send("data="+blob);

在我定义的控制器中:

public ActionResult Content(string data)
{
  return Json("suc", JsonRequestBehavior.AllowGet);
}

但我正在检索的data为空。我做错了什么。

2 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。 您正在将二进制数据发送到mvc控制器方法,并且在该方法中您将获取二进制值作为字符串请注意,如果您要使用应该使用的保存方法,这是问题的主要原因

var fileContent = window.btoa(blob);

oReq.send(JSON.stringify({data: fileContent}));

所以在你的服务器端方法

byte[] fileByte = Convert.FromBase64String(fileContent);

答案 1 :(得分:0)

客户端更改

oReq.send("data="+blob);

oReq.send(blob);

了Serverside /控制器

public ActionResult Upload()
{
    var r = Request;
    byte[] ba = r.BinaryRead(r.ContentLength);
   ...
 }

JavaScript可以传输二进制数据。见here

基本上发送二进制数据&收到时没有姓名/变数。