Maison  >  Article  >  interface Web  >  Comment layui implémente le téléchargement d'images et l'aperçu de l'image (code pur)

Comment layui implémente le téléchargement d'images et l'aperçu de l'image (code pur)

不言
不言original
2018-08-13 17:27:0810195parcourir

Le contenu de cet article explique comment layui implémente le téléchargement d'images et l'aperçu des images (code pur). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

1. Télécharger automatiquement après la sélection d'un fichier

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <link rel="stylesheet" href="../../layui/css/layui.css"/>
    </head>
    <body>
        <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
          <legend>常规使用:普通图片上传</legend>
        </fieldset>
         
        <div class="layui-upload">
          <button type="button" class="layui-btn" id="test1">上传图片</button>
          <div class="layui-upload-list">
              <!--预览图片-->
            <img class="layui-upload-img" id="demo1">
            <!--提示上传信息-->
            <p id="demoText"></p>
          </div>
        </div>   
        
        <script type="text/javascript" src="../../layui/layui.js"></script>
        <script>
            layui.use([&#39;upload&#39;,&#39;jquery&#39;], function(){
                var $ = layui.$,
                upload = layui.upload;
                
                 //普通图片上传
                  var uploadInst = upload.render({
                    elem: &#39;#test1&#39;
                    ,url: &#39;/upload/&#39;
                    ,before: function(obj){//文件上传前的回调
                      //预读本地文件示例,不支持ie8
                      obj.preview(function(index, file, result){
                        $(&#39;#demo1&#39;).attr(&#39;src&#39;, result); //图片链接(base64)直接将图片地址赋值给img的src属性
                      });
                    }
                    ,done: function(res){
                      //如果上传失败
                      if(res.code > 0){
                        return layer.msg(&#39;上传失败&#39;);
                      }
                      //上传成功
                    }
                    ,error: function(){
                      //演示失败状态,并实现重传
                      var demoText = $(&#39;#demoText&#39;);
                      demoText.html(&#39;<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>&#39;);
                      demoText.find(&#39;.demo-reload&#39;).on(&#39;click&#39;, function(){
                        uploadInst.upload();
                      });
                    }
                  });
            });
        </script>
    </body>
</html>

Implémentation de l'aperçu de l'image, le rappel après la sélection du fichier et le rappel avant le téléchargement de l'image peuvent être implémentés :

obj.preview(function(index, file, result){
                        //index表示文件索引
                        //file表示文件信息
                        //result表示文件src地址
				        $(&#39;#demo1&#39;).attr(&#39;src&#39;, result); //图片链接(base64)直接将图片地址赋值给img的src属性
				      });

Après avoir cliqué pour télécharger l'image, sélectionnez l'image et téléchargez-la directement :

2 Elle ne sera pas téléchargée automatiquement après la sélection du fichier et déclenchera le téléchargement. via le bouton

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<link rel="stylesheet" href="../../layui/css/layui.css"/>
	</head>
	<body>
		<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
		  <legend>常规使用:普通图片上传</legend>
		</fieldset>
		 
		<p class="layui-upload">
		  <button type="button" class="layui-btn" id="choose">选择文件</button>
		  <p class="layui-upload-list">
		  	<!--预览图片-->
		    <img class="layui-upload-img" id="demo1">
		    <!--提示上传信息-->
		    <p id="demoText"></p>
		  </p>
		  <button type="button" class="layui-btn" id="load">上传</button>
		</p>   
		
		<script type="text/javascript" src="../../layui/layui.js"></script>
		<script>
			layui.use([&#39;upload&#39;,&#39;jquery&#39;], function(){
				var $ = layui.$,
				upload = layui.upload;
				
				 //普通图片上传
				  var uploadInst = upload.render({
				    elem: &#39;#choose&#39;//选择文件的DOM对象
				    ,auto: false //选择文件后不自动上传
				    ,bindAction: &#39;#load&#39; //指向一个按钮触发上传
				    ,url: &#39;/upload/&#39;
				    ,choose:function(obj){//选择文件的回调,obj为选中的文件
				    	//将每次选择的文件追加到文件队列
    					var files = obj.pushFile();
    					
    					//预览选中的文件(本地文件)
    					obj.preview(function(index,file,result){
    						 $(&#39;#demo1&#39;).attr(&#39;src&#39;, result); 
    					});
				    }
				    ,before: function(obj){//文件上传前的回调
				      
				    }
				    ,done: function(res){
				      //如果上传失败
				      if(res.code > 0){
				        return layer.msg(&#39;上传失败&#39;);
				      }
				      //上传成功
				    }
				    ,error: function(){
				      //演示失败状态,并实现重传
				      var demoText = $(&#39;#demoText&#39;);
				      demoText.html(&#39;<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>&#39;);
				      demoText.find(&#39;.demo-reload&#39;).on(&#39;click&#39;, function(){
				        uploadInst.upload();
				      });
				    }
				  });
			});
		</script>
	</body>
</html>

Cliquez Après avoir sélectionné le fichier, sélectionnez l'image. L'image sélectionnée peut être affichée pour un aperçu, puis cliquez sur Télécharger pour télécharger l'image :

<.>

Recommandations associées :

Comment exporter et importer Excel en utilisant js ? Comment importer et exporter Excel avec js (code pur)

Comment déplacer le menu déroulant vers la gauche et la droite avec js (code)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn