web-dev-qa-db-fra.com

Comment supprimer le type de la chaîne Javascript FileReader base64?

J'ai le code suivant dans mon Javascript:

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

Cela me montre les données suivantes:

 data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAAAAABX3VL4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gYSDCUgSze0AAAAAA5JREFUCNdjrGJgYmAAAAJ0AH4SDHVIAAAAAElFTkSuQmCC

Le fait est que je ne veux que la partie après la virgule. J'ai essayé de l'obtenir à partir de reader.result.value, reader.result.valueOf() et quelques autres combinaisons, mais je ne trouve pas la bonne pour JUSTE obtenir la chaîne base64 à partir de la virgule. Donc, une deuxième idée est de simplement supprimer la virgule et tout ce qui précède, mais je ne suis pas sûr de savoir comment procéder.

Quelqu'un aurait-il une idée de comment y parvenir? Tous les conseils sont les bienvenus!

45
kramer65

Les fonctions suivantes atteindront le résultat souhaité:

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

Cela fractionne la chaîne en un tableau de chaînes avec le premier élément (index 0) contenant data:image/png;base64 et le deuxième élément (index 1) contenant les données encodées en base64.

Une autre solution consiste à trouver l'index de la virgule, puis tout simplement couper tout avant et y compris la virgule:

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

Voir JSFiddle .

83
let reader: FileReader = new FileReader();

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

ou

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