c# - How to fix this Base 64 array issue -
i have base64 string in view
side. if pass whole base64
array @ time can convert in bytes this
byte[] mybinary = convert.frombase64string(data);
where data
represents data coming form view page. having huge data. so, splitting data in view page like
var arr = []; (var = 0; < data.length - 1; += 1000000) { arr.push(data.substr(i, 1000000)); }
and passing data controller
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) { }); }
and in controller side have written code like:
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); }
but getting error at:
byte[] mybinary = convert.frombase64string(datavalueincont);
and error
the input not valid base-64 string contains non-base 64 character, more 2 padding characters, or illegal character among padding characters.
how can rectify this. if pass data @ time able bytes in mybinary
array. hope understand question.
i have idea.
as sending data using ajax, nothing ensures chunks sent sequentially.
so maybe when aggregate data chunks not in order.
try make ajax call sequentially confirm point.
[edit]
something (not tested):
var data = [];//your data var sendmoredata = function (firsttime) { if (data.length == 0) return;//no more data send var content = data.shift(); var r = firsttime ? "first" : data.length == 0 ? "last": "next"; $.post('/home/content', { content: content, data: r }, function (d) { sendmoredata(); }); }; sendmoredata(true);
Comments
Post a Comment