Как удалить тип из строки 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, начиная с запятой. Итак, вторая идея - просто отключить запятую и все, что до этого, но я не уверен, как это сделать.
Кто-нибудь знает, как это сделать? Все советы приветствуются!
Ответы
Ответ 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];