简体   繁体   中英

Base64 failed to convert back to image

I was trying to convert a Base64 string from an ajax post, and the request seems to be working fine - getting a successfull return.

but when I tried converting it back to an image it gives me this error:

An exception of type 'System.FormatException' occurred in mscorlib.dll but was not handled in user code

Additional information: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.

[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";


}

here's the base64 string..

data: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==

I was really unaware that i was trying to convert an html :D thanks to @john and @Access Denied for pointing out the error..
I really appreciated your help :)

heres the js script I used for converting the image..

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"设置正确的来源

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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