Layui 经典模块化前端框架

什么是layui?

layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式 适合界面的快速开发.

这里以文件上传为例 简单学习使用layui框架

1.准备资源

下载layui官方资源  http://www.layui.com/ 

2.了解图片/文件上传模块 - layui.upload

上传模块自 layui 2.0 的版本开始,进行了全面重写,这使得它不再那么单一,它所包含的不仅是更为强劲的功能,还有灵活的UI。任何元素都可以作为上传组件来调用,譬如按钮、图片、普通的DIV等等,而不再是一个单调的file文件域。

3.核心方法

使用 upload 模块必须与upload.render(options)方法打交道,其中的options即为基础参数,它是一个对象。

<script>

  var upload = layui.upload; //得到 upload 对象

  

  //创建一个上传组件

  upload.render({

    elem: '#id',

    url: '',

    done: function(res, index, upload){ //上传后的回调

   

    }

    //,accept: 'file' //允许上传的文件类型

    //,size: 50 //最大允许上传的文件大小

    //,……

  })

</script>

从 layui 2.1.0 开始,允许你直接在元素上设定基础参数,如:

【HTML】

<button class="layui-btn test" lay-data="{url: '/a/'}">上传图片</button>

<button class="layui-btn test" lay-data="{url: '/b/', accept: 'file'}">上传文件</button>

 

【JS】

upload.render({

  elem: '.test'

  ,done: function(res, index, upload){

   //获取当前触发上传的元素,一般用于 elem 绑定 class 的情况,注意:此乃 layui 2.1.0 新增

    var item = this.item;

  }

})

4.基本参数

更多支持的参数详见下表,合理的配置它们,应对各式各样的业务需求。

参数选项

说明

类型

默认值

elem

指向容器选择器,如:elem: '#id'。也可以是DOM对象

string/object

-

url

服务端上传接口,返回的数据规范请详见下文

string

-

method

上传接口的 HTTP 类型

string

post

data

请求上传接口的额外参数

object

-

accept

指定允许上传的文件类型,可选值有:images(图片)、file(所有文件)、video(视频)、audio(音频)

string

images

exts

允许上传的文件后缀。一般结合 accept 参数类设定。假设 accept 为 file 类型时,那么你设置 exts: 'zip|rar|7z' 即代表只允许上传压缩格式的文件。如果 accept 未设定,那么限制的就是图片的文件格式

string

jpg|png|gif|bmp|jpeg

auto

是否选完文件后自动上传。如果设定 false,那么需要设置 bindAction 参数来指向一个其它按钮提交上传

boolean

true

bindAction

指向一个按钮触发上传,一般配合 auto: false 来使用。值为选择器或DOM对象,如:bindAction: '#btn'

string/object

-

field

设定文件域的字段名

string

file

size

设置文件最大可允许上传的大小,单位 KB。不支持ie8/9

number

0(即不限制)

multiple

是否允许多文件上传。设置 true即可开启。不支持ie8/9

boolean

false

drag

是否接受拖拽的文件上传,设置 false 可禁用。不支持ie8/9

boolean

true

5. 回调函数

参数选项

说明

类型

默认值

choose

选择文件后的回调函数。返回一个object参数,详见下文

function

-

before

文件提交上传前的回调。返回一个object参数(同上),详见下文

function

-

done

执行上传请求后的回调。返回三个参数,分别为:res(服务端响应信息)、index(当前文件的索引)、upload(重新上传的方法,一般在文件上传失败后使用)。详见下文

function

-

error

执行上传请求出现异常的回调(一般为网络异常、URL 404等)。返回两个参数,分别为:index(当前文件的索引)、upload(重新上传的方法)。详见下文

function

-

6. 回调参数格式

接口返回的相应信息(response)必须是一个标准的 JSON 格式

  {

    "code": 0

    ,"msg": ""

    ,"data": {

      "src": "http://cdn.layui.com/123.jpg"

    }

  }

7.layui图片上传使用步骤

1.创建ssm工程(maven生成项目 省略ssm核心控制器等控制器的配置)

2.导入layui框架

3.pom.xml文件导入(下载响应jar文件)

4.编写上传文件的目录

5.配spring-mvc上传组件

  <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
     <property name="maxUploadSize" value="1024000"></property>
    <property name="defaultEncoding" value="utf-8"></property>
    </bean>

6.编写上传文件的Controller

7.编写上传文件的方法和保存方法

8.编写异步上传的jsp页面

9.设置当前页面相对路径位置到resources目录

10.加载layui框架

<link rel="stylesheet" type="text/css" href="layui/css/layui.css">

<script type="text/javascript" src="layui/layui.js"></script>

11.编写HTML代码

<div class="layui-upload">

    <button type="button" class="layui-btn" id="test2" >图片上传</button>

    <blockquote class="layui-elem-quote layui-quote-nm"    style="margin-top: 10px;">

    预览图:

    <div class="layui-upload-list" id="demo2"></div>

    </blockquote>

</div>

<form action="${pageContext.request.contextPath}/upload/save"

    method="post" id="saveform">

    <input type="submit" value="提交">

</form>

12.编写js脚本代码

<script type="text/javascript">

    layui.use(['upload'],function(){

       var upload = layui.upload,

        $=layui.$;

       upload.render({

          elem: '#test2'

          ,url: '${pageContext.request.contextPath}/upload/up'

          ,multiple: true

          ,accept:'images'

          ,exts:'jpg|png|gif|bmp|jpeg'

          ,size:2048

          ,before: function(obj){

              //预读本地文件示例,不支持ie8

              obj.preview(function(index, file, result){

                  $('#demo2').append('<img width="80px" src="'

                         + result +'" alt="'+ file.name

                         +'" class="layui-upload-img upload-img">');

              });

            }

           ,done: function(res){

               $("#saveform").append("<input type='hidden' name='imgs' value='"

                      +res.imgurl+"'>");

           }

       });

    })

</script>

猜你喜欢

转载自blog.csdn.net/WeiHao1024k/article/details/81319167