博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ASP.NET MVC 网站开发总结(三) ——图片截图上传
阅读量:6296 次
发布时间:2019-06-22

本文共 3232 字,大约阅读时间需要 10 分钟。

本着简洁直接,我们就直奔主题吧,这里需要使用到一个网页在线截图插件imgareaselect(请自行下载)。

 

前台页面:

    
View Code

要使用imgareaselect插件上传文件主要要引入了imgareaselect-default.cssjquery.imgareaselect.pack.js以及jquery-2.1.1.min.js三个文件。

图片呈现在页面上进行了等比例的放缩(长或宽放缩为280px)。

 

页面效果图:

后台处理代码:

//更新用户头像        [HttpPost]        public ActionResult UpdatePicture(int x1, int y1, int x2, int y2, HttpPostedFileBase pictureFile)        {            if (pictureFile != null && pictureFile.ContentLength > 0)            {                if (pictureFile.ContentLength > 5242880)                {                    return Content("");                }                string fileName = pictureFile.FileName.Split('\\').Last();                string fileExt = fileName.Substring(fileName.LastIndexOf('.')).ToLower();                if (fileExt == ".jpg" || fileExt == ".png")                {                    string path = Server.MapPath("~/Resources/HeadPicture");                    if (!Directory.Exists(path))                    {                        Directory.CreateDirectory(path);                    }                    fileName = DateTime.Now.ToFileTime().ToString() + Guid.NewGuid().ToString("N") + fileExt;                    var picPath = Path.Combine(path, fileName);                    pictureFile.SaveAs(picPath);//从客户端保存文件到本地                    //检查裁剪图片是否合法并裁剪图片                    var image = new WebImage(picPath);                    double height = image.Height;                    double width = image.Width;                    if (width > height)                    {                        height = (int)(280 * (height / width));                        width = 280;                    }                    else                    {                        width = (int)(280 * (width / height));                        height = 280;                    }                    image.Resize((int)width, (int)height);//调整图片大小                    var length = x2 - x1;                    if (x1 >= 0 && x1 <= 280 && y1 >= 0 && y1 <= 280 && length >= 50 && length <= 280 && x1 + length <= width && y1 + length <= height)                    {                        image.Crop(y1, x1, (int)(height - y1 - length), (int)(width - x1 - length));                        image.Save(picPath);                        var logined = entity.Users.Find(Convert.ToInt32(User.Identity.Name));                        logined.Picture = fileName;                        entity.SaveChanges();                        return Content("");                    }                    else                    {                        System.IO.File.Delete(picPath);                        return Content("");                    }                }                else                {                    return Content("");                }            }            else            {                return Content("");            }        }
View Code

上面代码是一个用户头像更新的代码,也是先将图片等比例放缩(长或宽放缩为280px),也前台页面上面的图片相对应,然后再进行裁剪。

 

第一次团队合作ASP.NET MVC 网站开发总结就到这里吧。

<我的博客主页>:

 

转载于:https://www.cnblogs.com/forcheng/p/5426997.html

你可能感兴趣的文章
tunctl used & bridge sub interface network used with multi-network env
查看>>
JAVA应用小程序(Applet)
查看>>
Mac OS终端提示符前缀”bogon”
查看>>
iOS内存管理知识点
查看>>
记一次出现的OOM
查看>>
windows下mysql-8.0.11-winx64解压版配置
查看>>
Kotlin的解析(下)
查看>>
android打开pdf文件
查看>>
【python】 针对python3 下无法导入tkinter
查看>>
微信公众号开发小记(二)--服务器验证
查看>>
Gson解析JSON数据中动态未知字段key的方法
查看>>
磁盘硬件结构及容量计算
查看>>
Vue实战狗尾草博客后台管理系统
查看>>
AJAX (异步 javascript 和 xml)
查看>>
KindEditor上传图片(后台)
查看>>
Android架构组件LiveData+ViewModel
查看>>
Spring Boot 动手写一个 Start
查看>>
芯讯通1月28号晚上八点直播-C-V2X产业链生态思考,关注易贸智慧互联公众号免费收听...
查看>>
浅析jQuery原理并仿写封装一个自己的库
查看>>
Learning ImageMagick 4: 批处理
查看>>