繁体   English   中英

Base64无法转换回映像

[英]Base64 failed to convert back to image

我试图从ajax帖子转换成Base64字符串,并且请求似乎运行良好-获得成功的返回。

但是当我尝试将其转换回图像时,出现了以下错误:

mscorlib.dll中发生类型'System.FormatException'的异常,但未在用户代码中处理

附加信息:输入不是有效的Base-64字符串,因为它包含非base 64字符,两个以上的填充字符或填充字符中的非法字符。

[WebMethod(EnableSession = true)]
public static string insertFile(string base64File)
{


    string path = HttpContext.Current.Server.MapPath("~/Users/Organizer/organizersData/"); // de path


    //Check if directory exist
    if (!Directory.Exists(path))
    {
        Directory.CreateDirectory(path); //Create directory if it doesn't exist
    }


    string imageName = "event1" + ".jpg";// for instance 

    //set the image path 
    string imgPath = Path.Combine(path, imageName);
    string convert = base64File.Replace("data:image/png;base64,", String.Empty).Replace("data:image/jpg;base64,", String.Empty).Replace("data:image/bmp;base64,", string.Empty); ;

    string converted = convert.Replace('-', '+');
    converted = converted.Replace('_', '/');

    byte[] imageBytes = Convert.FromBase64String(converted);

    File.WriteAllBytes(imgPath, imageBytes); //write the file in the directory 



    return "success";


}

这是base64字符串。

数据:text / html的; BASE64,PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPiAKPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPiAKPGhlYWQ + IAo8dGl0bGU + SUlTIDEwLjAgRGV0YWlsZWQgRXJyb3IgLSA0MDQuMCAtIE5vdCBGb3VuZDwvdGl0bGU ++ IAo8L3N0eWxlPiAKIAo8L2hlYWQ + IAo8Ym9keT4gCjxkaXYgaWQ9ImNvbnRlbnQiPiAKPGRpdiBjbGFzcz0iY29udGVudC1jb250YWluZXIiPiAKICA8aDM + SFRUUCBFcnJvciA0MDQuMCAtIE5vdCBGb3VuZDwvaDM + IAogIDxoND5UaGUgcmVzb3VyY2UgeW91IGFyZSBsb29raW5nIGZvciBoYXMgYmVlbiByZW1vdmVkLCBoYWQgaXRzIG5hbWUgY2hhbmdlZCwgb3IgaXMgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUuPC9oND4gCjwvZGl2PiAKPGRpdiBjbGFzcz0iY29udGVudC1jb250YWluZXIiPiAKIDxmaWVsZHNldD48aDQ + TW9zdCBsaWtlbHkgY2F1c2VzOjwvaDQ + IAogIDx1bD4gCTxsaT5UaGUgZGlyZWN0b3J5IG9yIGZpbGUgc3BlY2lmaWVkIGRvZXMgbm90IGV4aXN0IG9uIHRoZSBXZWIgc2VydmVyLjwvbGk + IAk8bGk + VGhlIFVSTCBjb250YWlucyBhIHR5cG9ncmFwaGljYWwgZXJyb3IuPC9saT4gCTxsaT5BIGN1c3RvbSBmaWx0ZXIgb3IgbW9kdWxlLCBzdWNoIGFzIFVSTFNjYW4sIHJlc3Rya WN0cyBhY2Nlc3MgdG8gdGhlIGZpbGUuPC9saT4gPC91bD4gCiA8L2ZpZWxkc2V0PiAKPC9kaXY + IAo8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI + IAogPGZpZWxkc2V0PjxoND5UaGluZ3MgeW91IGNhbiB0cnk6PC9oND4gCiAgPHVsPiAJPGxpPkNyZWF0ZSB0aGUgY29udGVudCBvbiB0aGUgV2ViIHNlcnZlci48L2xpPiAJPGxpPlJldmlldyB0aGUgYnJvd3NlciBVUkwuPC9saT4gCTxsaT5DaGVjayB0aGUgZmFpbGVkIHJlcXVlc3QgdHJhY2luZyBsb2cgYW5kIHNlZSB3aGljaCBtb2R1bGUgaXMgY2FsbGluZyBTZXRTdGF0dXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBjbGljayA8YSBocmVmPSJodHRwOi8vZ28ubWljcm9zb2Z0LmNvbS9md2xpbmsvP0xpbmtJRD02NjQzOSI + aGVyZTwvYT4uIDwvbGk + IDwvdWw + IAogPC9maWVsZHNldD4gCjwvZGl2PiAKIAo8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI + IAogPGZpZWxkc2V0PjxoND5EZXRhaWxlZCBFcnJvciBJbmZvcm1hdGlvbjo8L2g0PiAKICA8ZGl2IGlkPSJkZXRhaWxzLWxlZnQiPiAKICAgPHRhYmxlIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj4gCiAgICA8dHIgY2xhc3M9ImFsdCI + PHRoPk1vZHVsZTwvdGg + PHRkPiZuYnNwOyZuYnNwOyZuYnNwO0lJUyBXZWIgQ29yZTwvdGQ + PC90cj4gCiAgICA8dHI + PHRoPk5vdGlmaWNhdGlvbjwvdGg + PHRkPiZuYnNwOyZuYnNwOyZuYnNwO01hcFJlcXVlc3RIYW5kbGVyP C90ZD48L3RyPiAKICAgIDx0ciBjbGFzcz0iYWx0Ij48dGg + SGFuZGxlcjwvdGg + PHRkPiZuYnNwOyZuYnNwOyZuYnNwO1N0YXRpY0ZpbGU8L3RkPjwvdHI + IAogICAgPHRyPjx0aD5FcnJvciBDb2RlPC90aD48dGQ + Jm5ic3A7Jm5ic3A7Jm5ic3A7MHg4MDA3MDAwMjwvdGQ + PC90cj4gCiAgICAgCiAgIDwvdGFibGU + IAogIDwvZGl2PiAKICA8ZGl2IGlkPSJkZXRhaWxzLXJpZ2h0Ij4gCiAgIDx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2luZz0iMCI + IAogICAgPHRyIGNsYXNzPSJhbHQiPjx0aD5SZXF1ZXN0ZWQgVVJMPC90aD48dGQ + Jm5ic3A7Jm5ic3A7Jm5ic3A7aHR0cDovL2xvY2FsaG9zdDo1MDA2NS9Vc2Vycy9Pcmdhbml6ZXIvbnVsbDwvdGQ + PC90cj4gCiAgICA8dHI + PHRoPlBoeXNpY2FsIFBhdGg8L3RoPjx0ZD4mbmJzcDsmbmJzcDsmbmJzcDtDOlxVc2Vyc1xEVllSQVxEZXNrdG9wXHJlZ2Vhc2VfcHJvalxSZWdFYXNlQmV0YXYxLjBcVXNlcnNcT3JnYW5pemVyXG51bGw8L3RkPjwvdHI + IAogICAgPHRyIGNsYXNzPSJhbHQiPjx0aD5Mb2dvbiBNZXRob2Q8L3RoPjx0ZD4mbmJzcDsmbmJzcDsmbmJzcDtBbm9ueW1vdXM8L3RkPjwvdHI + IAogICAgPHRyPjx0aD5Mb2dvbiBVc2VyPC90aD48dGQ + Jm5ic3A7Jm5ic3A7Jm5ic3A7QW5vbnltb3VzPC90ZD48L3RyPiAKICAgIDx0ciBjbGFzcz0iYWx0Ij48dGg + UmVxdWVzdCBUcmFjaW5nIERpcmVjdG9yeTwvdGg + PHRkPiZuYnNwOyZuY nNwOyZuYnNwO0M6XFVzZXJzXERWWVJBXERvY3VtZW50c1xJSVNFeHByZXNzXFRyYWNlTG9nRmlsZXNcUkVHRUFTRUJFVEFWMS4wPC90ZD48L3RyPiAKICAgPC90YWJsZT4gCiAgIDxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4gCiAgPC9kaXY + IAogPC9maWVsZHNldD4gCjwvZGl2PiAKIAo8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI + IAogPGZpZWxkc2V0PjxoND5Nb3JlIEluZm9ybWF0aW9uOjwvaDQ + IAogIFRoaXMgZXJyb3IgbWVhbnMgdGhhdCB0aGUgZmlsZSBvciBkaXJlY3RvcnkgZG9lcyBub3QgZXhpc3Qgb24gdGhlIHNlcnZlci4gQ3JlYXRlIHRoZSBmaWxlIG9yIGRpcmVjdG9yeSBhbmQgdHJ5IHRoZSByZXF1ZXN0IGFnYWluLiAKICA8cD48YSBocmVmPSJodHRwczovL2dvLm1pY3Jvc29mdC5jb20vZndsaW5rLz9MaW5rSUQ9NjIyOTMmYW1wO0lJUzcwRXJyb3I9NDA0LDAsMHg4MDA3MDAwMiwxNzEzNCI + VmlldyBtb3JlIGluZm9ybWF0aW9uICZyYXF1bzs8L2E + PC9wPiAKICAgCiA8L2ZpZWxkc2V0PiAKPC9kaXY + IAo8L2Rpdj4gCjwvYm9keT4gCjwvaHRtbD4gCg ==

我真的没有意识到我要转换一个HTML:D,这要感谢@john和@Access Denied指出了错误。
非常感谢您的帮助:)

这是我用于转换图像的js脚本。

function readFile() {

    if (this.files && this.files[0]) {

        var FR = new FileReader();

        FR.addEventListener("load", function (e) {
            sessionStorage.setItem("imagebase64", e.target.result);
        });

        FR.readAsDataURL(this.files[0]);
    }

}

document.getElementById("test").addEventListener("change", readFile);

在HTML中为图片标记src="data:image/jpeg;base64,HERE_IS_YOUR_BASE64STRING"设置正确的来源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM