我将图像blob从JS发布到MVC控制器

时间:2017-09-27 00:38:07

标签: javascript c# asp.net-mvc blob

我花了一整天的时间浏览所有文章,并且几乎每次遇到的修复都没有运气,我知道有很多这些Base64问题,但没有一个帖子能够帮助我。所以这里什么都没有......

这是我的带有图像blob的JS,Blob是从websocket连接发送的。

                var reader = new FileReader();
                //// Closure to capture the file information.
                reader.onload = (function (e) {
                    return function (e) {
                        var xhr = new XMLHttpRequest();
                        xhr.open('POST', '/Home/GetLicScan', true);
                        xhr.onload = function (e) {
                            var result = e.target.result;
                        };
                        xhr.send('{"blob":"' + e.target.result + '"}');
                    };

                })(f);

                // Read in the image file as a data URL.
                reader.readAsDataURL(f);

这是我的控制器

     public JsonResult GetLicScan()
    {
        int counter = 0;
        counter++;

        byte[] data = Convert.FromBase64String(Request.ToString());
        System.IO.File.WriteAllBytes(@"C:\Test" + counter + ".png", data);

        return Json("success");
    }

有关如何摆脱错误并将blog保存到image.png / jpg的一些指导将非常感激。

这是VS Exception,我确定有些人厌倦了阅读它... 发生了System.FormatException   的HResult = 0x80131537   Message =输入不是有效的Base-64字符串,因为它包含非基本64个字符,两个以上的填充字符或填充字符中的非法字符。

1 个答案:

答案 0 :(得分:0)

我想通了!!感谢所有试图提供帮助的人。

问题是“Request.ToString()”,我需要使用Stream和StreamReader。