FromBase64String 输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符

js前台:

 <input   multiple/>


onFileChange(e) {
                var files = e.target.files || e.dataTransfer.files;
                if (!files.length)return; 
                this.createImage(files);
            },
            createImage(file) {
                if(typeof FileReader==='undefined'){
                    alert('您的浏览器不支持图片上传,请升级您的浏览器');
                    return false;
                }
                var image = new Image();         
                var vm = this;
                var leng=file.length;
                for(var i=0;i<leng;i++){
                    var reader = new FileReader();
                    reader.readAsDataURL(file[i]); 
                    reader.onload =function(e){
                        vm.images=e.target.result;                                    
                    };                 
                }                        
            }

1.上面代码将图片生成base64的字符串,该字符串以分号切割 例如这样的格式 "data:image/png;base64,iVBORw0KGgo.............." 

该字符串的第一部分"data:image/png;base64" 是代表该Base64字符串对应的原始类型,第二部分是该文件生成的内容

2.在C#语言的后台 我们直接获取该字符串,并对其分割转化为图片,注意如不分割 FromBase64String 方法会报错,提示输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符。所以我们只取第二部分的内容出来转化就好了,因为第一部分包含着文件格式

 public JsonResult PDUploadImage(string img)
        {
            string error = "";
            SaveImage(@"C:UsersJUNON37DesktopPictures123", img, ref error);
            return Json("", JsonRequestBehavior.AllowGet);
        }
private bool SaveImage(string file_name, string img_string, ref string error)
       {
            try
            {
                string[] img_array = img_string.Split(',');
                byte[] arr = Convert.FromBase64String(img_array[1]);
                using (MemoryStream ms = new MemoryStream(arr))
                {
                    Bitmap bmp = new Bitmap(ms);
                    if (img_array[0].ToLower() == "data:image/jpeg;base64")
                    {
                        bmp.Save(file_name + ".jpg");
                    }
                    else if (img_array[0].ToLower() == "data:image/png;base64")
                    {
                        bmp.Save(file_name + ".png");
                    }
                    else
                    {
                        error = "不支持该文件格式。";
                        return false;
                    }

                }
            }
            catch (Exception ex)
            {
                error = "生成图片发生错误。" + ex.ToString();
                return false;
            }
            return true;
        }

这样就好了