【问题标题】:How to send blob data through xmlhttprequest in asp.net mvc如何在asp.net mvc中通过xmlhttprequest发送blob数据
【发布时间】:2013-05-03 12:21:49
【问题描述】:

我正在通过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 为空。我做错了什么。

【问题讨论】:

  • Actionresult => JsonResult ?
  • @codebrain 我正在使用 ActionResult

标签: c# jquery xmlhttprequest


【解决方案1】:

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

var fileContent = window.btoa(blob);

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

所以在你的服务器端方法中

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

【讨论】:

    【解决方案2】:

    客户端改变

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

    oReq.send(blob);
    

    服务器端/控制器

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

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

    基本上二进制数据是在没有名称/变量的情况下发送和接收的。

    【讨论】:

      猜你喜欢
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 2017-08-11
      • 2015-11-21
      相关资源
      最近更新 更多