2014-02-01 4 views
0

Я конвертирую изображение в base64 на мобильный клиент html5 и отправляю строку в мою службу webapi. Я стараюсь, чтобы преобразовать полученную строку обратно в изображение, и я получаю следующее исключениеValidate Base64 string

входа не является допустимым Base-64 строка, которая содержит не-базовую 64 символ, более двух символов отступов, или недопустимый символ среди прописных символов.

Pastebin of base64 string is here.

Я прочитал все предложения по перепрограммированию неправильных символов, поэтому я проделал эту функцию и передал в нее свои строки, но пока не повезло.

private string FixBase64ForImage(string Image) 
    { 
     System.Text.StringBuilder sbText = new System.Text.StringBuilder(Image, Image.Length); 

     sbText.Replace("\r\n", String.Empty); 

     sbText.Replace(" ", String.Empty); 

     sbText.Replace('-', '+'); 

     sbText.Replace('_', '/'); 

     sbText.Replace(@"\/", "/"); 

     return sbText.ToString(); 
    } 

Есть ли способ узнать, какой символ вызывает преобразование?

ответ

3

Моя догадка заключается в том, что вы включаете часть "data:image/png;base64," в начале строки - вам нужно сначала снять ее. Вам не нужно ничего делать - с текстом в pastebin, Convert.FromBase64String обрабатывает все после «base64» без каких-либо проблем.

+0

Я дам этому вихрь, спасибо –

+0

Спасибо, что сработало ... –