1、基础实例
注意,一定要引入cropper.js和croppers.js这两个文件
html代码
<div class="layui-form-item">
<label class="layui-form-label">头像</label>
<div class="layui-input-inline">
<input type="text" name="head" lay-verify="required" id="inputimgurl" placeholder="图片地址" value="123.jpg" class="layui-input">
</div>
<div class="layui-input-inline">
<div class="layui-upload-list" style="margin:0">
<img src="123.jpg" id="srcimgurl" class="layui-upload-img">
</div>
</div>
<div class="layui-input-inline layui-btn-container" style="width: auto;">
<button class="layui-btn layui-btn-primary" id="editimg">修改图片</button >
</div>
<div class="layui-form-mid layui-word-aux">头像的尺寸限定150x150px,大小在50kb以内</div>
</div>
</div>
js部分
layui.config({
base: '/resource/cropper/'
}).use(['form','croppers'], function () {
var $ = layui.jquery
,form = layui.form
,croppers = layui.croppers
,layer= layui.layer;
//创建一个头像上传组件
croppers.render({
elem: '#editimg'
,saveW:150 //保存宽度
,saveH:150
,mark:1/1 //选取比例
,area:'900px' //弹窗宽度
,url: "/TravellerWebsite/traveller/headIcon.do" //图片上传接口返回和(layui 的upload 模块)返回的JOSN一样
,done: function(url){ //上传完毕回调
$("#inputimgurl").val(url);
$("#srcimgurl").attr('src',url);
}
});
});
注意,可能会出现cropper.css加载失败的情况,可以到croppers.js中更改下图cropper.css的路径
var html = "<link rel=\"stylesheet\" href=\"/resource/cropper/cropper.css\">\n" +
使用cropper携带额外的数据到后台
js代码
layui.config({
base: '/resource/cropper/'
}).use(['form','croppers'], function () {
var $ = layui.jquery
,form = layui.form
,croppers = layui.croppers
,layer= layui.layer;
//创建一个头像上传组件
croppers.render({
elem: '#editimg'
,saveW:150 //保存宽度
,saveH:150
,mark:1/1 //选取比例
,area:'900px' //弹窗宽度
,data:{"id":1234,'name':'we'} //传入的数据一定要为这种格式,才能解析
,url: "/headIcon.do" //图片上传接口返回和(layui 的upload 模块)返回的JOSN一样
,done: function(url){ //上传完毕回调
$("#inputimgurl").val(url);
$("#srcimgurl").attr('src',url);
}
});
});
然后在croppers.js中修改以下两处代码
render: function(e){
$('body').append(html);
var self = this,
elem = e.elem,
saveW = e.saveW,
saveH = e.saveH,
mark = e.mark,
area = e.area,
url = e.url,
data = e.data, //要额外携带传入后台的数据
done = e.done;
$(".layui-btn").on('click',function () {
var event = $(this).attr("cropper-event");
//监听确认保存图像
if(event === 'confirmSave'){
/**
* 可以将要额外携带的数据转换成json格式
* 然后遍历加入到formData中
* 这里没有转换为json格式
*/
// var result = $.parseJSON(data);
var formData=new FormData();
$.each(data, function(k, v) {
formData.append(k,v);
});
image.cropper("getCroppedCanvas",{
width: saveW,
height: saveH
}).toBlob(function(blob){
formData.append('file',blob,'head.jpg');
$.ajax({
method:"post",
url: url, //用于文件上传的服务器端请求地址
data: formData,
processData: false,
contentType: false,
success:function(result){
if(result.code == 0){
layer.msg(result.msg,{icon: 1});
layer.closeAll('page');
return done(result.data.src);
}else if(result.code == -1){
layer.alert(result.msg,{icon: 2});
}
}
});
});
后面持续更新中…
版权声明:本文为qq_43029797原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。