


Implémentation de la fonction de prévisualisation locale de téléchargement d'image basée sur jquery_jquery
Lorsque nous téléchargeons des fichiers, si nous devons les télécharger sur le serveur à chaque fois avant de pouvoir les prévisualiser, cela semble raisonnable mais en réalité déraisonnable. Si la vitesse du réseau est lente ou s'il y a des problèmes avec les images, cela ne sera pas seulement le cas. perdre du temps pour les clients, mais aussi gaspiller les ressources du serveur. D'accord, nous présentons ci-dessous l'aperçu local lors du téléchargement d'images à l'aide de js.
1.Principe
est divisé en deux étapes :
Lorsque la saisie de téléchargement d'une image est déclenchée et qu'une image locale est sélectionnée, obtenez l'URL de l'objet (URL de l'objet) de l'image à télécharger
;Attribuez l'URL de l'objet à l'attribut src de la balise img pré-écrite pour afficher l'image.
Ici, nous devons comprendre l'objet File, l'objet Blob et la méthode window.URL.createObjectURL() en Javascript.
1. 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. il peut provenir de l'objet DataTransfer généré par opération de glisser-déposer.
Regardons comment obtenir l'objet FileList :
<script type="text/javascript" src="jquery.js"></script> <input id="upload" type="file"> <img id="preview" src=""> <script type="text/javascript"> $('#upload').change(function(){ // 获取FileList的第一个元素 alert(document.getelementbyid('upload').files[0]); }); </script>
2. 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 voulons obtenir est en fait obtenue à partir de l'objet Blob, car l'interface File hérite de Blob. Convertissons l'objet Blob en URL :
<script type="text/javascript"> var f = document.getelementbyid('upload').files[0]; var src = window.URL.createObjectURL(f); document.getElementById('preview').src = src; </script>
Un exemple relativement complet
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>HTML5 Upload</title> <style type="text/css"> #destination{ filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(true,sizingMethod=scale); } </style> <!--<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>--> <script type="text/javascript" src="http://localhost/jQuery/jquery.js"></script> <script type="text/javascript"> //处理file input加载的图片文件 $(document).ready(function(e) { //判断浏览器是否有FileReader接口 if(typeof FileReader =='undefined') { $("#destination").css({'background':'none'}).html('亲,您的浏览器还不支持HTML5的FileReader接口,无法使用图片本地预览,请更新浏览器获得最好体验'); //如果浏览器是ie if($.browser.msie===true) { //ie6直接用file input的value值本地预览 if($.browser.version==6) { $("#imgUpload").change(function(event){ //ie6下怎么做图片格式判断? var src = event.target.value; //var src = document.selection.createRange().text; //选中后 selection对象就产生了 这个对象只适合ie var img = '<img src="'+src+'" width="200px" height="200px" />'; $("#destination").empty().append(img); }); } //ie7,8使用滤镜本地预览 else if($.browser.version==7 || $.browser.version==8) { $("#imgUpload").change(function(event){ $(event.target).select(); var src = document.selection.createRange().text; var dom = document.getElementById('destination'); //使用滤镜 成功率高 dom.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src= src; dom.innerHTML = ''; //使用和ie6相同的方式 设置src为绝对路径的方式 有些图片无法显示 效果没有使用滤镜好 /*var img = '<img src="'+src+'" width="200px" height="200px" />'; $("#destination").empty().append(img);*/ }); } } //如果是不支持FileReader接口的低版本firefox 可以用getAsDataURL接口 else if($.browser.mozilla===true) { $("#imgUpload").change(function(event){ //firefox2.0没有event.target.files这个属性 就像ie6那样使用value值 但是firefox2.0不支持绝对路径嵌入图片 放弃firefox2.0 //firefox3.0开始具备event.target.files这个属性 并且开始支持getAsDataURL()这个接口 一直到firefox7.0结束 不过以后都可以用HTML5的FileReader接口了 if(event.target.files) { //console.log(event.target.files); for(var i=0;i<event.target.files.length;i++) { var img = '<img src="'+event.target.files.item(i).getAsDataURL()+'" width="200px" height="200px"/>'; $("#destination").empty().append(img); } } else { //console.log(event.target.value); //$("#imgPreview").attr({'src':event.target.value}); } }); } } else { // version 1 /*$("#imgUpload").change(function(e){ var file = e.target.files[0]; var fReader = new FileReader(); //console.log(fReader); //console.log(file); fReader.onload=(function(var_file) { return function(e) { $("#imgPreview").attr({'src':e.target.result,'alt':var_file.name}); } })(file); fReader.readAsDataURL(file); });*/ //单图上传 version 2 /*$("#imgUpload").change(function(e){ var file = e.target.files[0]; var reader = new FileReader(); reader.onload = function(e){ //displayImage($('bd'),e.target.result); //alert('load'); $("#imgPreview").attr({'src':e.target.result}); } reader.readAsDataURL(file); });*/ //多图上传 input file控件里指定multiple属性 e.target是dom类型 $("#imgUpload").change(function(e){ for(var i=0;i<e.target.files.length;i++) { var file = e.target.files.item(i); //允许文件MIME类型 也可以在input标签中指定accept属性 //console.log(/^image/.*$/i.test(file.type)); if(!(/^image/.*$/i.test(file.type))) { continue; //不是图片 就跳出这一次循环 } //实例化FileReader API var freader = new FileReader(); freader.readAsDataURL(file); freader.onload=function(e) { var img = '<img src="'+e.target.result+'" width="200px" height="200px"/>'; $("#destination").empty().append(img); } } }); //处理图片拖拽的代码 var destDom = document.getElementById('destination'); destDom.addEventListener('dragover',function(event){ event.stopPropagation(); event.preventDefault(); },false); destDom.addEventListener('drop',function(event){ event.stopPropagation(); event.preventDefault(); var img_file = event.dataTransfer.files.item(0); //获取拖拽过来的文件信息 暂时取一个 //console.log(event.dataTransfer.files.item(0).type); if(!(/^image/.*$/.test(img_file.type))) { alert('您还未拖拽任何图片过来,或者您拖拽的不是图片文件'); return false; } fReader = new FileReader(); fReader.readAsDataURL(img_file); fReader.onload = function(event){ destDom.innerHTML=''; destDom.innerHTML = '<img src="'+event.target.result+'" width="200px" height="200px"/>'; }; },false); } }); </script> </head> <body> <input type="file" id="imgUpload" name="imgUpload" draggable="true" single/> <!--允许file控件接受的文件类型--> <!--<input type="file" id="imgUpload" name="imgUpload" accept="image/*" multiple/>--> <div id="destination" style="width:200px;height:200px;border:1px solid #000000;"><img src="nopic.jpg" /></div> </body> </html>
2. Compatibilité
- •La méthode ci-dessus convient au navigateur Chrome
- •S'il s'agit d'un navigateur IE, vous pouvez utiliser directement la valeur d'entrée au lieu de src
- • Lors de la visualisation d'informations en ligne, vous pouvez utiliser directement la méthode getAsDataURL() de l'objet File pour obtenir l'URL. Cette méthode a désormais été supprimée. Les méthodes similaires incluent getAsText() et getAsBinary(). ;
Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun.

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Explication détaillée de la méthode de référence jQuery : Guide de démarrage rapide jQuery est une bibliothèque JavaScript populaire largement utilisée dans le développement de sites Web. Elle simplifie la programmation JavaScript et fournit aux développeurs des fonctions et fonctionnalités riches. Cet article présentera en détail la méthode de référence de jQuery et fournira des exemples de code spécifiques pour aider les lecteurs à démarrer rapidement. Présentation de jQuery Tout d'abord, nous devons introduire la bibliothèque jQuery dans le fichier HTML. Il peut être introduit via un lien CDN ou téléchargé

Comment utiliser la méthode de requête PUT dans jQuery ? Dans jQuery, la méthode d'envoi d'une requête PUT est similaire à l'envoi d'autres types de requêtes, mais vous devez faire attention à certains détails et paramètres. Les requêtes PUT sont généralement utilisées pour mettre à jour des ressources, comme la mise à jour de données dans une base de données ou la mise à jour de fichiers sur le serveur. Ce qui suit est un exemple de code spécifique utilisant la méthode de requête PUT dans jQuery. Tout d'abord, assurez-vous d'inclure le fichier de la bibliothèque jQuery, puis vous pourrez envoyer une requête PUT via : $.ajax({u

Comment supprimer l'attribut height d'un élément avec jQuery ? Dans le développement front-end, nous rencontrons souvent le besoin de manipuler les attributs de hauteur des éléments. Parfois, nous pouvons avoir besoin de modifier dynamiquement la hauteur d'un élément, et parfois nous devons supprimer l'attribut height d'un élément. Cet article explique comment utiliser jQuery pour supprimer l'attribut height d'un élément et fournit des exemples de code spécifiques. Avant d'utiliser jQuery pour exploiter l'attribut height, nous devons d'abord comprendre l'attribut height en CSS. L'attribut height est utilisé pour définir la hauteur d'un élément

Titre : jQuery Astuces : Modifier rapidement le texte de toutes les balises a de la page En développement web, nous avons souvent besoin de modifier et d'exploiter des éléments de la page. Lorsque vous utilisez jQuery, vous devez parfois modifier le contenu textuel de toutes les balises de la page en même temps, ce qui peut économiser du temps et de l'énergie. Ce qui suit explique comment utiliser jQuery pour modifier rapidement le texte de toutes les balises a de la page et donne des exemples de code spécifiques. Tout d'abord, nous devons introduire le fichier de la bibliothèque jQuery et nous assurer que le code suivant est introduit dans la page : <

Titre : utilisez jQuery pour modifier le contenu textuel de toutes les balises. jQuery est une bibliothèque JavaScript populaire largement utilisée pour gérer les opérations DOM. En développement web, nous rencontrons souvent le besoin de modifier le contenu textuel de la balise de lien (une balise) sur la page. Cet article expliquera comment utiliser jQuery pour atteindre cet objectif et fournira des exemples de code spécifiques. Tout d’abord, nous devons introduire la bibliothèque jQuery dans la page. Ajoutez le code suivant dans le fichier HTML :

jQuery est une bibliothèque JavaScript populaire largement utilisée pour gérer la manipulation DOM et la gestion des événements dans les pages Web. Dans jQuery, la méthode eq() est utilisée pour sélectionner des éléments à une position d'index spécifiée. Les scénarios d'utilisation et d'application spécifiques sont les suivants. Dans jQuery, la méthode eq() sélectionne l'élément à une position d'index spécifiée. Les positions d'index commencent à compter à partir de 0, c'est-à-dire que l'index du premier élément est 0, l'index du deuxième élément est 1, et ainsi de suite. La syntaxe de la méthode eq() est la suivante : $("s

Comment savoir si un élément jQuery possède un attribut spécifique ? Lorsque vous utilisez jQuery pour exploiter des éléments DOM, vous rencontrez souvent des situations dans lesquelles vous devez déterminer si un élément possède un attribut spécifique. Dans ce cas, nous pouvons facilement implémenter cette fonction à l'aide des méthodes fournies par jQuery. Ce qui suit présentera deux méthodes couramment utilisées pour déterminer si un élément jQuery possède des attributs spécifiques et joindra des exemples de code spécifiques. Méthode 1 : utilisez la méthode attr() et l'opérateur typeof // pour déterminer si l'élément a un attribut spécifique

jQuery est une bibliothèque JavaScript populaire largement utilisée dans le développement Web. Lors du développement Web, il est souvent nécessaire d'ajouter dynamiquement de nouvelles lignes aux tableaux via JavaScript. Cet article explique comment utiliser jQuery pour ajouter de nouvelles lignes à une table et fournit des exemples de code spécifiques. Tout d'abord, nous devons introduire la bibliothèque jQuery dans la page HTML. La bibliothèque jQuery peut être introduite dans la balise via le code suivant :
