我在view
旁边有一个 base64 字符串。如果我一次传递整个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 字符串,因为它包含非 base 64 字符、两个以上的填充字符或填充字符中的非法字符。
我该如何纠正这一点。如果我一次传递数据,我可以获得
myBinary
数组中的字节。希望你能理解我的问题。