zoukankan      html  css  js  c++  java
  • layui插件croppers的使用

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

    1.  
       
    2.  
      @{
    3.  
      ViewData["Title"] = "Croppers";
    4.  
      }
    5.  
       
    6.  
      <!DOCTYPE html>
    7.  
      <html>
    8.  
      <head>
    9.  
      <meta charset="utf-8" />
    10.  
      <title></title>
    11.  
      <link href="~/lib/layui/layui.css" rel="stylesheet" />
    12.  
       
    13.  
      </head>
    14.  
      <body>
    15.  
      <div class="layui-form-item">
    16.  
      <label class="layui-form-label">头像</label>
    17.  
      <div class="layui-input-inline">
    18.  
      <input type="text" name="head" lay-verify="required" id="inputimgurl" placeholder="图片地址" value="123.jpg" class="layui-input">
    19.  
      </div>
    20.  
      <div class="layui-input-inline">
    21.  
      <div class="layui-upload-list" style="margin:0">
    22.  
      <img src="./微信图片_20190404185124.png" id="srcimgurl" class="layui-upload-img">
    23.  
      </div>
    24.  
      </div>
    25.  
      <div class="layui-input-inline layui-btn-container" style=" auto;">
    26.  
      <button class="layui-btn layui-btn-primary" id="editimg">修改图片</button>
    27.  
      </div>
    28.  
      <div class="layui-form-mid layui-word-aux">头像的尺寸限定150x150px,大小在50kb以内</div>
    29.  
      </div>
    30.  
      <script src="~/lib/layui/layui.js"></script>
    31.  
       
    32.  
       
    33.  
       
    34.  
      <link href="~/lib/layui/cropper/cropper.css" rel="stylesheet" />
    35.  
      <script src="~/lib/layui/cropper/croppers.js"></script>
    36.  
      <script>
    37.  
      layui.config({
    38.  
      base: '/lib/layui/cropper/' //layui自定义layui组件目录
    39.  
      }).use(['form', 'croppers'], function () {
    40.  
      var $ = layui.jquery
    41.  
      , form = layui.form
    42.  
      , croppers = layui.croppers
    43.  
      , layer = layui.layer;
    44.  
       
    45.  
      //创建一个头像上传组件
    46.  
      croppers.render({
    47.  
      elem: '#editimg'
    48.  
      , saveW: 150 //保存宽度
    49.  
      , saveH: 150
    50.  
      , mark: 1 / 1 //选取比例
    51.  
      , area: '900px' //弹窗宽度
    52.  
      , url: "/Home/UpLoadImg" //图片上传接口返回和(layui 的upload 模块)返回的JOSN一样
    53.  
      , done: function (url) { //上传完毕回调
    54.  
      debugger
    55.  
      $("#inputimgurl").val(url);
    56.  
      $("#srcimgurl").attr('src', url);
    57.  
      }
    58.  
      });
    59.  
       
    60.  
      });
    61.  
      </script>
    62.  
      </body>
    63.  
      </html>

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

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

    1.  
      [HttpPost]
    2.  
      public async Task<IActionResult> UpLoadImg()
    3.  
      {
    4.  
      var date = Request;
    5.  
      var files = Request.Form.Files;
    6.  
      long size = files.Sum(f => f.Length);
    7.  
      string webRootPath = _webHostEnvironment.WebRootPath;
    8.  
       
    9.  
      string newFileName = "";
    10.  
      foreach (var formFile in files)
    11.  
      {
    12.  
      if (formFile.Length > 0)
    13.  
      {
    14.  
       
    15.  
      string fileExt = System.IO.Path.GetExtension(formFile.FileName); //文件扩展名,不含“.”
    16.  
      long fileSize = formFile.Length; //获得文件大小,以字节为单位
    17.  
      newFileName = System.Guid.NewGuid().ToString() + "." + fileExt; //随机生成新的文件名
    18.  
      var filePath = webRootPath + "/upload/" + newFileName;
    19.  
      using (var stream = new FileStream(filePath, FileMode.Create))
    20.  
      {
    21.  
       
    22.  
      await formFile.CopyToAsync(stream);
    23.  
      }
    24.  
       
    25.  
      }
    26.  
      }
    27.  
      return Json(new { code = 0,msg="上传成功", data =new { src= "/upload/" + newFileName } });
    28.  
       
    29.  
      }

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

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

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

  • 相关阅读:
    kitten编程猫 学习教程(一) 学习笔记
    华为中国生态大会2021举行在即,GaussDB将重磅发布5大解决方案
    华为云官网负责人明哥:我们是如何做到门面不倒,8个月挑战业界翘楚?
    为啥你写的代码总是这么复杂?
    云图说|不要小看不起眼的日志,“小日志,大作用”
    如何高效地存储与检索大规模的图谱数据?
    华为云PB级数据库GaussDB(for Redis)揭秘第十期:GaussDB(for Redis)迁移系列(上)
    开发者必看,面试官心中的最佳数据库人才模型是什么样?
    华为云PB级数据库GaussDB(for Redis)揭秘第九期:与HBase的对比
    技术实践丨如何解决异步接口请求快慢不均导致的数据错误问题?
  • 原文地址:https://www.cnblogs.com/AndyLin/p/13036540.html
Copyright © 2011-2022 走看看