我正在录制用户视频并将数据发送到控制器。控制器将以字符串形式接收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();
}
}
视频正在下载但视频未播放内容。任何人都可以告诉我是什么原因。
答案 0 :(得分: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字符串,而不是。