Asp.net mvc实现上传头像加剪裁功能

 更新时间:2022年04月27日 14:21:28   投稿:lijiao  
这篇文章主要介绍了实现Asp.net mvc上传头像加剪裁功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

在我们使用QQ上传头像,注册用户账号时是不是都会遇到上传图像,并根据自己的要求对图像进行裁剪,这是怎么实现的呐?

本文主要介绍了Asp.net mvc实现上传头像加剪裁功能,分享给大家供大家参考。具体如下: 

运行效果截图如下:

具体代码如下:

前台代码

<link href="~/Content/fineuploader.css" rel="stylesheet" />
<link href="~/Content/jquery.Jcrop.min.css" rel="stylesheet" />
<link href="~/Content/crop.min.css" rel="stylesheet" />
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery.fineuploader-3.1.min.js"></script>
<script src="~/Scripts/jquery.Jcrop.min.js"></script>
<script src="~/Scripts/crop.js"></script>

<div id="jquery-wrapped-fine-uploader"></div>
 <div id="message"></div>
 <div id="crop_wrap">
  <div id="crop_holder">
   <div id="crop_area" class="border">
    <img id="crop_image" alt="" src="" class="preview-image" style="display: none" />
   </div>
   <div id="preview_area">
    <div id="preview_title">当前头像</div>
    <div id="preview_large_text" class="preview-text">180px × 180px</div>
    <div id="preview_large_wrap" class="border">
     <img id="preview_large" alt="" src="@ViewBag.Path" class="preview-image" style=""/></div>
   </div>
  </div>
  <div id="crop_operation" style="display: none;">
   <form id="form_crop" action="/home/index" method="post">
    <input type="hidden" name="x" id="x">
    <input type="hidden" name="y" id="y">
    <input type="hidden" name="w" id="w">
    <input type="hidden" name="h" id="h">
    <input type="hidden" name="imgsrc" id="imgsrc">
    <input id="crop_operation_submit" type="submit" value="裁切并保存" /><span id="crop_operation_msg" style="display: none" class="green"></span>
   </form>
  </div>
  <div id="croped_message" class="green"></div>
 </div>

后台代码

public ActionResult Index()
  {
   return View();
  }

  /// <summary>
  /// 保存缩略图
  /// </summary>
  /// <param name="form"></param>
  /// <returns></returns>
  [HttpPost]
  public ActionResult Index(FormCollection form)
  {
   int x = Convert.ToInt32(form["x"]);
   int y = Convert.ToInt32(form["y"]);
   int w = Convert.ToInt32(form["w"]);
   int h = Convert.ToInt32(form["h"]);
   string imgsrc = form["imgsrc"].Substring(0, form["imgsrc"].LastIndexOf("?"));
   string path = ImgHandler.CutAvatar(imgsrc, x, y, w, h);

   //保存Path
   
   ViewBag.Path = path;
   return View();
  }

  /// <summary>
  /// 上传头像
  /// </summary>
  /// <param name="qqfile"></param>
  /// <returns></returns>
  [HttpPost]
  public ActionResult ProcessUpload(string qqfile)
  {
   try
   {
    string uploadFolder = "/Upload/original/" + DateTime.Now.ToString("yyyyMM") + "/";
    string imgName = DateTime.Now.ToString("ddHHmmssff");
    string imgType = qqfile.Substring(qqfile.LastIndexOf("."));
    string uploadPath = "";
    uploadPath = Server.MapPath(uploadFolder);
    if (!Directory.Exists(uploadPath))
    {
     Directory.CreateDirectory(uploadPath);
    }
    using (var inputStream = Request.InputStream)
    {
     using (var flieStream = new FileStream(uploadPath + imgName + imgType, FileMode.Create))
     {
      inputStream.CopyTo(flieStream);
     }
    }

    return Json(new { success = true, message = uploadFolder + imgName + imgType });
   }
   catch (Exception e)
   {
    return Json(new { fail = true, message = e.Message });
   }
  }

以上就是实现Asp.net mvc上传头像加剪裁功能的部分代码,小编分享给大家参考,希望对大家的学习有所帮助。

相关文章

  • .NET MCP 文档详细指南

    .NET MCP 文档详细指南

    本文档详细介绍了 .NET 使用 MCP 的相关内容,包括服务器端实现、客户端实现以及 Cursor 集成配置等方面,通过使用 MCP,开发者可以创建强大的工具和服务,使 AI 模型能够安全地访问和操作各种数据源,感兴趣的朋友一起看看吧
    2025-04-04
  • 教你30分钟通过Kong实现.NET网关

    教你30分钟通过Kong实现.NET网关

    Kong是一个Openrestry程序,而Openrestry运行在Nginx上,用Lua扩展了nginx。所以可以认为Kong = Openrestry + nginx + lua,这篇文章主要介绍了30分钟通过Kong实现.NET网关,需要的朋友可以参考下
    2021-11-11
  • asp.net生成验证码代码(纯中文)

    asp.net生成验证码代码(纯中文)

    下面我来写一个生成纯中文的验证码技术,写一个类库,需要的朋友可以参考下
    2012-06-06
  • asp.net微信开发(用户分组管理)

    asp.net微信开发(用户分组管理)

    这篇文章主要介绍了asp.net微信开发中有关用户分组管理的相关内容,需要的朋友可以参考下
    2015-11-11
  • ASP.NET Core 模型验证消息的本地化新姿势详解

    ASP.NET Core 模型验证消息的本地化新姿势详解

    文章介绍了如何在ASP.NET Core中对模型验证消息进行本地化,默认情况下,验证消息是英文的,不方便用户理解,通过自定义资源类并将其放入项目中,可以实现验证消息的本地化,这样无需为每个模型手动指定错误消息,提升了开发效率,感兴趣的朋友一起看看吧
    2025-03-03
  • ASP.NET Core AutoWrapper 自定义响应输出实现

    ASP.NET Core AutoWrapper 自定义响应输出实现

    这篇文章主要介绍了ASP.NET Core AutoWrapper 自定义响应输出实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • ASP.NET Core中使用MialKit实现邮件发送功能

    ASP.NET Core中使用MialKit实现邮件发送功能

    这篇文章主要介绍了ASP.NET Core中使用MialKit实现邮件发送功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Repeater控件动态变更列(Header,Item和Foot)信息(重构cs)

    Repeater控件动态变更列(Header,Item和Foot)信息(重构cs)

    上一篇虽然它算不上是完全动态化,但它已经达到初期想要的效果,现另开一篇,不是重新另外写,而是想重构cs的代码,因为前一篇的代码虽然简单,但代码冗余过多,感兴趣的朋友可以参考下哈
    2013-03-03
  • 动态加载用户控件至DataList并为用户控件赋值实例演示

    动态加载用户控件至DataList并为用户控件赋值实例演示

    本文借用使用通用的新闻例子演示动态加载用户控件至DataList并为用户控件赋值,感兴趣的朋友可以了解下
    2013-01-01
  • ASP.NET Core静态文件使用教程(9)

    ASP.NET Core静态文件使用教程(9)

    这篇文章主要为大家详细介绍了ASP.NET Core静态文件的使用教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06

最新评论