Layui结合croppers实现上传图片和裁剪图+踩坑记录

2021-04-30   阅读:3363   分类:前端    标签: Layui

本插件基于layui,根据cropper修改的图片截取(剪裁)上传插件,适用于头像等图片上传。后端接口代码编写采用的PHP框架laravel8写的。也可以改成其他的。

官方文档下载地址:https://fly.layui.com/extend/croppers/#doc

本站下载地址:https://qiniu.tpxhm.top/code/cropper.zip

一、官方文章存在坑,首先先在这里先把坑填了。

第一个:必须修改croppers.js中的css和base路径,改成你的项目具体路径

5.png

第二个:后端接口返回必须和插件一致,否则无法正确保存更改

1.png

33.png

二、最后,完成上面配置后,我们就可以来使用这个上传裁剪了

第一种:上传并截图

前端html部分代码

 <div>
	<label>管理员头像</label>

	<div>
		<div>
			<button type="button" id="test1" data-src="{$find.admin_logo}">上传图片</button>
			<div>
				<img id="demo1" style="width: 100px;height: 100px; display: none" >
				<input type="hidden" name="img111" id="img111">
				<p id="demoText"></p>
			</div>
		</div>
	</div>
</div>

前端js部分代码

    layui.config({
        base: '{{asset(__ADMIN__)}}/lib/jq-module/cropper/' //layui自定义layui组件目录
    }).use(['form','croppers'], function () {
        var $ = layui.jquery
            ,form = layui.form
            ,croppers = layui.croppers
            ,layer= layui.layer;
 
        //创建一个头像上传组件
        croppers.render({
            elem: '#test1'
            ,saveW:150     //保存宽度
            ,saveH:150
            ,mark:1/1    //选取比例
            ,area:'900px'  //弹窗宽度
            ,url: "{{route("ladmin.defend.config_upload")}}"  //图片上传接口返回和(layui 的upload 模块)返回的JOSN一样
            ,done: function(url){ //上传完毕回调
                console.log(url)
                $('#demo1').attr('src', url);
                $('#demo1').css('display', 'block');
                $('#img111').val(url);
                $('#test1').attr('data-src', url);  //成功返回路径存到数据库
            }
        });
    });

第二种:修改图片并裁剪

前端部分html代码

<div>
	<label>头像</label>
	<div>
		<input type="text" name="head" lay-verify="required" id="inputimgurl" placeholder="图片地址" value="123.jpg">
	</div>
	<div>
		<div style="margin:0">
			<img src="" id="srcimgurl">
			<input type="hidden" id="img111" name="img111">
		</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>

前端部分js代码

   layui.config({
        base: '{{asset(__ADMIN__)}}/lib/jq-module/cropper/' //layui自定义layui组件目录
    }).use(['form','croppers'], function () {
        var $ = layui.jquery
            ,form = layui.form
            ,croppers = layui.croppers
            ,layer= layui.layer;
 
        //创建一个头像上传组件
        croppers.render({
            elem: '#test1'
            ,saveW:150     //保存宽度
            ,saveH:150
            ,mark:1/1    //选取比例
            ,area:'900px'  //弹窗宽度
            ,url: "{{route("ladmin.defend.config_upload")}}"  //图片上传接口返回和(layui 的upload 模块)返回的JOSN一样
            ,done: function(url){ //上传完毕回调
                console.log(url)
                $("#inputimgurl").val(url);
                $("#srcimgurl").attr('src',url);
            }
        });
    });

最终效果

111111111111111111.jpg

左边为原始图片,右边为裁剪后的图片

【腾讯云】 爆款2核2G3M云服务器首年 61元,2核2G4M云服务器新老同享 99元/年,续费同价

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://tpxhm.com/fdetail/672.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸一
简忆博客壁纸二
简忆博客壁纸三
简忆博客壁纸四
简忆博客壁纸五
简忆博客壁纸六
简忆博客壁纸七
简忆博客壁纸八
头像

简忆博客
勤于学习,乐于分享

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×