側面にbase64文字列がありますview
。一度に配列全体を渡すと、次のbase64
ようにバイトに変換できます
byte[] myBinary = Convert.FromBase64String(data);
ここでdata
、ビュー ページから来るデータを表します。しかし、私は膨大なデータを持っています。だから、ビューページのデータを次のように分割しています
var arr = [];
for (var i = 0; i < data.length - 1; i += 1000000) {
arr.push(data.substr(i, 1000000));
}
そして今、データをコントローラーに渡しています
for (var x = 0; x < arr.length; x++) {
if (x = 0) {
r = "first";
}
else if (x = arr.length - 1) {
r = "last";
}
else {
r = "next";
}
$.post('/Home/Content', { content: e, data: r }, function (d) {
});
}
コントローラー側では、次のようなコードを記述しました。
public JsonResult Content(string content, string data)
{
datavalueincont += content;
if (data == "last")
{
byte[] myBinary = Convert.FromBase64String(datavalueincont);
var fname = "D://sri//data.mp4";
FileStream stream = new FileStream(fname, FileMode.Create, FileAccess.Write);
System.IO.BinaryWriter br = new System.IO.BinaryWriter(stream);
br.Write(myBinary);
br.Close();
read.Close();
stream.Close();
}
return Json("suc", JsonRequestBehavior.AllowGet);
}
しかし、次の場所でエラーが発生しています:
byte[] myBinary = Convert.FromBase64String(datavalueincont);
そしてそのエラーは
入力は、base 64 以外の文字、3 つ以上の埋め込み文字、または埋め込み文字に無効な文字が含まれているため、有効な Base-64 文字列ではありません。
どうすればこれを修正できますか。一度にデータを渡すと、
myBinary
配列内のバイトを取得できます。私の質問を理解していただければ幸いです。