Преобразование строки base64 в байтовый массив завершается неудачно с помощью строки base64 из iOS - «Недопустимая длина для массива или строки Base-64 char» - PullRequest
0 голосов
/ 29 января 2019

У меня есть веб-приложение MVC с функцией загрузки изображения на сервер.Функция работает на Android и Windows, но на iOS работает только частично.На iOS некоторые изображения могут быть преобразованы из строки base64 в байтовый массив, а некоторые другие - нет.Все изображения, которые я тестировал, имеют тип jpeg.

Изображение извлекается с помощью файлового ввода и затем кодируется в строку base64 с помощью javascript:

var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
    stringholder.value = reader.result;
    picholder.src = reader.result;
};

Затем эта строка base64 передаетсяв контроллер, где он преобразуется в байтовый массив:

var split = Image01.Split(',');
string Image01_Type = split[0] + ",";
string Image01_B64String = split[1];
byte[] Image01_Data = Convert.FromBase64String(Image01_B64String);

Некоторые изображения приводят к следующей ошибке при попытке преобразования строки base64 в байтовый массив: «Недопустимая длина для массива Base-64 charили строка. "

Я не могу на всю жизнь понять, что является причиной ошибки.Файл изображения без ошибок конвертируется в javascript в строку base64, а сами строки base64 выглядят нормально.

Может кто-нибудь помочь мне выяснить, что происходит не так?

* Редактировать: Строка base64, похоже, усекается при конвертации в iOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...