web-dev-qa-db-fra.com

Obtenir une image blob à partir d'un fichier en utilisant jQuery

J'ai quelques problèmes à prendre une image sous forme de blob avec jQuery:

Voici mon code:

var file = $("#imgGaleria3")[0].files;

if (file) {
    var reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = function(e) {
        // browser completed reading file - display it
        alert(e.target.result);
    };
}

Et tout le temps, j'obtiens la même erreur: uncaught TypeError: Impossible d'exécuter 'readAsDataURL' sur 'FileReader': le paramètre 1 n'est pas de type 'Blob'.

Comment puis-je résoudre? J'essaie quelques méthodes pour lire les données d'un objet fichier avec FileReader mais rien ne résout mon problème.

Merci pour votre aide les gars

7
Nega developer

Cette ligne semble fausse:

var file = $("#imgGaleria3")[0].files;

Vous devez avoir file pour être un fichier unique, pas tous les fichiers.

Exemple:

var file    = document.querySelector('input[type=file]').files[0];

ou de façon jQuery:

var file = $("#imgGaleria3")[0].files[0];
15
T McKeown

vous essayez d'exécuter le lecteur sur un tableau.

essayer

var file = $("#imgGaleria3")[0].files[0];

if (file) {
    var reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = function(e) {
        // browser completed reading file - display it
        alert(e.target.result);
    };
}
2
John M