首页 > web前端 > js教程 > 正文

layui如何实现图片的上传以及图片预览(纯代码)

不言
发布: 2018-08-13 17:27:08
原创
10758人浏览过

本篇文章给大家带来的内容是关于layui如何实现图片的上传以及图片预览(纯代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

1.选择文件后自动上传

<!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">
              <!--预览图片-->
            @@##@@
            <!--提示上传信息-->
            <p id="demoText"></p>
          </div>
        </div>   
        
        <script type="text/javascript" src="../../layui/layui.js"></script>
        <script>
            layui.use(['upload','jquery'], function(){
                var $ = layui.$,
                upload = layui.upload;
                
                 //普通图片上传
                  var uploadInst = upload.render({
                    elem: '#test1'
                    ,url: '/upload/'
                    ,before: function(obj){//文件上传前的回调
                      //预读本地文件示例,不支持ie8
                      obj.preview(function(index, file, result){
                        $('#demo1').attr('src', result); //图片链接(base64)直接将图片地址赋值给img的src属性
                      });
                    }
                    ,done: function(res){
                      //如果上传失败
                      if(res.code > 0){
                        return layer.msg('上传失败');
                      }
                      //上传成功
                    }
                    ,error: function(){
                      //演示失败状态,并实现重传
                      var demoText = $('#demoText');
                      demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
                      demoText.find('.demo-reload').on('click', function(){
                        uploadInst.upload();
                      });
                    }
                  });
            });
        </script>
    </body>
</html>
登录后复制

图片预览实现,在选择文件后的回调和图片上传前的回调都可以实现:

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

点击上传图片后,选择图片,直接上传:

layui如何实现图片的上传以及图片预览(纯代码)

2.选择文件后不自动上传,通过按钮触发上传

<!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">
		  	<!--预览图片-->
		    @@##@@
		    <!--提示上传信息-->
		    <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(['upload','jquery'], function(){
				var $ = layui.$,
				upload = layui.upload;
				
				 //普通图片上传
				  var uploadInst = upload.render({
				    elem: '#choose'//选择文件的DOM对象
				    ,auto: false //选择文件后不自动上传
				    ,bindAction: '#load' //指向一个按钮触发上传
				    ,url: '/upload/'
				    ,choose:function(obj){//选择文件的回调,obj为选中的文件
				    	//将每次选择的文件追加到文件队列
    					var files = obj.pushFile();
    					
    					//预览选中的文件(本地文件)
    					obj.preview(function(index,file,result){
    						 $('#demo1').attr('src', result); 
    					});
				    }
				    ,before: function(obj){//文件上传前的回调
				      
				    }
				    ,done: function(res){
				      //如果上传失败
				      if(res.code > 0){
				        return layer.msg('上传失败');
				      }
				      //上传成功
				    }
				    ,error: function(){
				      //演示失败状态,并实现重传
				      var demoText = $('#demoText');
				      demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
				      demoText.find('.demo-reload').on('click', function(){
				        uploadInst.upload();
				      });
				    }
				  });
			});
		</script>
	</body>
</html>
登录后复制

点击选择文件后,选择图片,选中的图片能展示出来预览,再点击上传,即将图片上传:

layui如何实现图片的上传以及图片预览(纯代码)

相关推荐:

js如何来导出以及导入excel?js导入导出excel的方法(纯代码)

js如何实现下拉菜单的左右移动(代码)

以上就是layui如何实现图片的上传以及图片预览(纯代码)的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号