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 に答える