Layui图片上传组件使用指南

done: function(res){

//关闭loading

layer.close(index);

}

});

});

上面渲染时只设置了部分属性,文章最下面有Layui上传的全部参数属性。

auto设置选择图片后是否自动上传。

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

bindAction设置指定按钮触发上传事件,和auto结合使用。

choose选择文件后回调函数。

将选择的图片插入选择框中显示。

$(“#ongImg”).html(“”);

done上传完成后回调函数

url指定上传的路径。

imgSave后台对应上传图片保存的方法,代码如下。

@RequestMapping(value = “/imgSave”)

@ResponseBody

public Boolean imgSave(MultipartFile file) {

String uuid = UUID.randomUUID().toString()+“.jpg”;

Boolean bool = fileService.saveFile(file, uuid);

return bool;

}

其中saveFile方法为后台上传方法,返回Boolean类型参数。代码如下。

// 图片存放位置

private final static String IMAGEPATH = “e:\layui\image”;

//保存图片

@Transactional

public boolean saveFile(MultipartFile file, String uuid) {

try {

File path = path(file.getContentType());

String filename = file.getOriginalFilename();

FileImg fileEntity = new FileImg();

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

Date date = new Date();

fileEntity.setFileName(filename);

fileEntity.setUuid(uuid);

String storeaddress = path.getAbsolutePath();

fileEntity.setStoreaddress(storeaddress);

File saveFile = new File(path, uuid);

try {

fileRepository.save(fileEntity);

file.transferTo(saveFile);

return true;

} catch (IllegalStateException | IOException e) {

e.printStackTrace();

return false;

}

} catch (Exception e) {

System.out.println(“图片保存异常”);

return false;

}

}

//图片地址是否存在

private File path(String filename) {

File pat = new File(“e:\layui”);

File path = new File(FileService.IMAGEPATH);

if (!pat.isDirectory()) {

pat.mkdir();

}

if (!path.isDirectory()) {

path.mkdir();

}

return path;

}

上述代码就是单图片上传了,下面是效果图。

选中文件前

在这里插入图片描述

选择文件后

在这里插入图片描述

多图片上传

上面是单图片上传,下面来看一下多图片上传。

先在页面上添加标签文件,用于显示

多图片上传

预览图:

JS加载与上传图片代码

layui.use(‘upload’, function() {

var upload = layui.upload;

upload.render({

elem: ‘#imgs’,

accept: ‘images’, //指定允许上传的文件类型

url: ‘imgSave’, //改成您自己的上传接口

multiple: true, //是否允许多文件上传

//选择文件后的回调函数

choose: function(obj){

//预读本地文件示例,

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

$(‘#imgsShow’).append(‘'+ file.name +'’)

});

},

done: function(res){

//上传完毕

}

});

});

Layui多图片上传如果不是自动上传,指定按钮上传,只会发送一次请求,也就是只会保存一张图片。所以这里设置的是选择图片后自动上传。如果有解决方法,欢迎下方留言交流。

属性设置和后台上传方法imgSave都和单图片上传一样。

上述代码就是单图片上传了,下面是效果图。

选择文件前

在这里插入图片描述

选择文件后

在这里插入图片描述

Layui上传的全部参数属性

| 参数选项 | 说明 | 类型 | 默认值 |

| — | — | — | — |

| elem | 指向容器选择器,如:elem: ‘#id’。也可以是DOM对象 | string/object | - |

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

| data | 请求上传接口的额外参数。如:data: {id: ‘xxx’} | object | - |

| headers | 接口的请求头。如:headers: {token: ‘sasasas’}。注:该参数为 layui 2.2.6 开始新增 | | |

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

| acceptMime | 规定打开文件选择框时,筛选出的文件类型,值为用逗号隔开的 MIME 类型列表。如: acceptMime: ‘image/*’(只显示图片文件) | | |

| acceptMime: ‘image/jpg, image/png’(只显示 jpg 和 png 文件) | 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 |

| number | 设置同时可上传的文件数量,一般配合 multiple 参数出现。 | number | 0(即不限制) |

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

回调

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
layui表格与layui分页组件可以很好地搭配使用,可以实现数据的分页展示,具体使用方法如下: 1. 引入layui框架和相关样式文件: ```html <link rel="stylesheet" href="layui/css/layui.css"> <script src="layui/layui.js"></script> ``` 2. 创建一个容器用于展示表格和分页组件: ```html <div id="demo"></div> ``` 3. 编写JavaScript代码,渲染表格和分页组件: ```javascript layui.use(['table', 'laypage'], function(){ var table = layui.table; var laypage = layui.laypage; // 表格渲染 table.render({ elem: '#demo', url: '/data.json', // 数据接口 cols: [[ // 表头 {field: 'id', title: 'ID', width: 80}, {field: 'username', title: '用户名', width: 120}, {field: 'sex', title: '性别', width: 80}, {field: 'city', title: '城市', width: 100}, {field: 'sign', title: '签名', width: 200}, {field: 'experience', title: '积分', width: 80}, {field: 'score', title: '评分', width: 80}, {field: 'classify', title: '职业', width: 100}, {field: 'wealth', title: '财富', width: 120} ]] }); // 分页组件渲染 laypage.render({ elem: 'demo', // 分页容器的id count: 50, // 数据总数 limit: 10, // 每页显示的条数 curr: location.hash.replace('#!fenye=', ''), // 获取hash值作为当前页码 hash: 'fenye', // 自定义hash值 jump: function(obj, first){ if(!first){ // 非首次加载才会执行 table.reload('demo', { where: { // 其他参数 page: obj.curr, limit: obj.limit } }); } } }); }); ``` 以上代码中,`table.render()`函数用于渲染表格,`laypage.render()`函数用于渲染分页组件。其中,`table.reload()`函数用于重新加载表格数据,实现分页效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值