Heim  >  Artikel  >  Web-Frontend  >  Wie Laui das Hochladen von Bildern und die Bildvorschau implementiert (reiner Code)

Wie Laui das Hochladen von Bildern und die Bildvorschau implementiert (reiner Code)

不言
不言Original
2018-08-13 17:27:0810297Durchsuche

Der Inhalt dieses Artikels handelt davon, wie Laui das Hochladen von Bildern und die Bildvorschau implementiert (reiner Code). Ich hoffe, dass er für Sie hilfreich ist.

1. Nach Auswahl einer Datei automatisch hochladen

<!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>

Bildvorschau-Implementierung, sowohl der Rückruf nach Auswahl der Datei als auch der Rückruf vor dem Hochladen des Bildes kann implementiert werden:

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

Klicken Sie, um das Bild hochzuladen. Wählen Sie anschließend das Bild aus und laden Sie es direkt hoch:

2. Es wird nicht automatisch hochgeladen, nachdem die Datei ausgewählt wurde, sondern der Upload wird über die Schaltfläche ausgelöst

<!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>

Klicken Sie, um die Datei auszuwählen, und wählen Sie dann das Bild aus. Das ausgewählte Bild kann angezeigt und in der Vorschau angezeigt werden. Klicken Sie dann auf Hochladen, um das Bild hochzuladen:

Verwandte Empfehlungen:

Wie exportiere und importiere ich Excel mit js? So importieren und exportieren Sie Excel mit js (reiner Code)

So verschieben Sie das Dropdown-Menü mit js (Code) nach links und rechts

Das obige ist der detaillierte Inhalt vonWie Laui das Hochladen von Bildern und die Bildvorschau implementiert (reiner Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn