Подтвердить что ты не робот

Как удалить тип из строки Base64 Javascript FileReader?

У меня есть следующий код в моем Javascript:

var reader = new FileReader();
reader.onloadend = function () {
    alert(reader.result);
};

Это показывает мне следующие данные:

 data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAAAAABX3VL4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gYSDCUgSze0AAAAAA5JREFUCNdjrGJgYmAAAAJ0AH4SDHVIAAAAAElFTkSuQmCC

Дело в том, что мне нужна только часть после запятой. Я попытался получить его из reader.result.value, reader.result.valueOf() и некоторых других комбинаций, но не могу найти правильный, чтобы JUST получить строку base64, начиная с запятой. Итак, вторая идея - просто отключить запятую и все, что до этого, но я не уверен, как это сделать.

Кто-нибудь знает, как это сделать? Все советы приветствуются!

4b9b3361

Ответ 1

Следующие функции достигнут желаемого результата:

var base64result = reader.result.split(',')[1];

Это разделяет строку на массив строк с первым элементом (индекс 0), содержащим data:image/png;base64, а второй элемент (индекс 1), содержащий кодированные base64 данные.

Другое решение - найти индекс запятой, а затем просто отрезать все до запятой и включить ее:

var base64result = reader.result.substr(reader.result.indexOf(',') + 1);

См. JSFiddle.

Ответ 2

let reader: FileReader = new FileReader();

 reader.onloadend = (e) => {
    let base64String = reader.result.split(',').pop();
 };

или

let base64String = /,(.+)/.exec(reader.result)[1];

Ответ 3

Вы можете попробовать разделить ваши данные, используя; base64,.

// In here you are getting the data type. Ex - png, jpg, jpeg, etc. You can use this for any further purposes.
var dataType = reader.result.split(';base64,')[1];

// In here you are getting the base64 string and you can use this for your purpose.
var base64result = reader.result.split(';base64,')[1];