layui插件croppers的使用

本文介绍了在layui框架中使用croppers插件的详细过程,包括前端代码的实现和目录结构展示。作者强调了后台返回JSON格式的重要性,并分享了在.NET Core MVC异步任务中的经验,指出访问根目录的方法变化。

       这是我第一次在layui环境下面使用croppers插件.先粘贴下前端代码并附上我的目录结构吧。


@{
    ViewData["Title"] = "Croppers";
}

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <link href="~/lib/layui/layui.css" rel="stylesheet" />
    
</head>
<body>
    <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="./微信图片_20190404185124.png" 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>
    <script src="~/lib/layui/layui.js"></script>

    

    <link href="~/lib/layui/cropper/cropper.css" rel="stylesheet" />
    <script src="~/lib/layui/cropper/croppers.js"></script>
    <script>
        layui.config({
            base: '/lib/layui/cropper/' //layui自定义layui组件目录
        }).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: "/Home/UpLoadImg"  //图片上传接口返回和(layui 的upload 模块)返回的JOSN一样
                , done: function (url) { //上传完毕回调
                    debugger
                    $("#inputimgurl").val(url);
                    $("#srcimgurl").attr('src', url);
                }
            });

        });
    </script>
</body>
</html>

下面的这张图是我的目录结构! 

下面这张图是我的后台代码!

[HttpPost]
        public async Task<IActionResult> UpLoadImg()
        {
            var date = Request;
            var files = Request.Form.Files;
            long size = files.Sum(f => f.Length);
            string webRootPath = _webHostEnvironment.WebRootPath;

            string newFileName = "";
            foreach (var formFile in files)
            {
                if (formFile.Length > 0)
                {

                    string fileExt = System.IO.Path.GetExtension(formFile.FileName); //文件扩展名,不含“.”
                    long fileSize = formFile.Length; //获得文件大小,以字节为单位
                    newFileName = System.Guid.NewGuid().ToString() + "." + fileExt; //随机生成新的文件名
                    var filePath = webRootPath + "/upload/" + newFileName;
                    using (var stream = new FileStream(filePath, FileMode.Create))
                    {

                        await formFile.CopyToAsync(stream);
                    }
                    
                }
            }
            return Json(new { code = 0,msg="上传成功", data =new { src= "/upload/" + newFileName } });

        }

 需要注意的是这个json返回格式我一开始参考了很多网上的例子发现都是错误的,后来还是我认真阅读了这个js的后台代码找到了正确的返回格式

重点看绿色框框里面的匿名对象里面还有对象所以new里面还要一个new。

总结下遇到几个花费了我时间的其他方面的点。第一是新的.net core框架mvc做的都是异步任务,其次再访问根目录的方法跟以前不一样了,大家可以看代码多体会体会!

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值