1

我正在录制用户视频并将数据发送到控制器。控制器将接收 base64 数据作为字符串。然后我将base64字符串转换为字节,如:

public ActionResult Content(string data)
{
    byte[] ret = System.Text.Encoding.Unicode.GetBytes(data);         
    FileInfo fil = new FileInfo("D://test.mp4");
    MemoryStream stream = new MemoryStream(ret);
    var getdata = stream.GetBuffer();
    using (Stream sw = fil.OpenWrite())
      {
         sw.Write(getdata, 0, getdata.Length);
         sw.Close();
      }
}

视频正在下载,但视频未播放内容。谁能告诉我是什么原因。

4

1 回答 1

2

您需要从 base64 字符串中恢复原始字节数组 - 使用FromBase64String它。

public ActionResult Content(string data)
{
    byte[] ret = Convert.FromBase64String(data);         
    FileInfo fil = new FileInfo("D://test.mp4");

    using (Stream sw = fil.OpenWrite())
    {
      sw.Write(ret , 0, ret .Length);
      sw.Close();
    }
}

您的代码正在做的是将 base64 字符串视为 unicode 字符串,但事实并非如此。

于 2013-05-08T11:14:27.777 回答