La fonction d'aperçu du téléchargement d'image est principalement utilisée pour prévisualiser un effet avant le téléchargement de l'image. Les méthodes traditionnelles actuelles incluent principalement js, jquery et flash, mais nous utilisons généralement js pour implémenter la fonction d'aperçu du téléchargement d'image. à un exemple.
Principe :
Il se divise en deux étapes : lorsque l'entrée de téléchargement de l'image est déclenchée et que l'image locale est sélectionnée, obtenir l'URL de l'objet de l'image à télécharger (URL de l'objet) attribuer l'URL de l'objet au src ; attribut de la balise img pré-écrite. Afficher l'image.
Ici, nous devons comprendre l'objet File, l'objet Blob et la méthode window.URL.createObjectURL() en Javascript.
Objet fichier :
L'objet File peut être utilisé pour obtenir des informations sur un fichier, et peut également être utilisé pour lire le contenu de ce fichier. Habituellement, l'objet File est l'objet FileList renvoyé après que l'utilisateur sélectionne un fichier sur un élément d'entrée, ou. cela peut provenir de l'objet DataTransfer généré par l'opération glisser-déposer
Regardons comment obtenir l'objet FileList :
Objet Blob :
Un objet Blob est un objet de type fichier contenant des données brutes en lecture seule. Les données de l'objet Blob ne doivent pas nécessairement être sous la forme native en JavaScript. L'interface File est basée sur Blob, hérite des fonctions de. Blob, et étend la prise en charge d'un fichier local sur l'ordinateur de l'utilisateur.
L'URL de l'objet que nous souhaitons obtenir est en fait obtenue à partir de l'objet Blob, car l'interface File hérite de Blob. Convertissons l'objet Blob en URL :
Compatibilité :
La méthode ci-dessus est applicable au navigateur Chrome
S'il s'agit d'un navigateur IE, vous pouvez utiliser directement la valeur d'entrée au lieu de src
Pour afficher les informations en ligne, vous pouvez directement utiliser la méthode getAsDataURL() du fichier objet pour obtenir l'URL. Maintenant, cette méthode a toutes été supprimées. Les méthodes similaires incluent getAsText() et getAsBinary().
Ce code permet d'obtenir le chemin complet de l'image client
Nous limiterons sa taille et son format