博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于layui+cropper.js实现图片上传剪裁功能
阅读量:6758 次
发布时间:2019-06-26

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

先看实现效果图:

点击头像上传触发上传操作:

点击头像触发上传

选择图片之后:旋转;复位:

旋转

设置要截取的图片:

截取

点击确认截取:

接下来说实现过程:

首先图片截取用的是cropper.js,这里用的是修改过的配合layui使用的,给出源码地址:

链接地址:,提取码:q6wb

接下来是代码:

首先html代码显示要修改的头像:

然后写点击事件,写layui图片上传的方法:

把用到的cropper引入进来,然后后端接口里面处理要接收的图片(此处给出个人写的处理代码,仅供参考):

1 /*头像上传*/ 2     @ApiOperation(value = "用户头像上传", notes = "用户修改信息时的头像上传接口") 3     @PostMapping(value = "/upload") 4     public void working(HttpServletRequest request, HttpServletResponse response) 5             throws IllegalStateException, IOException { 6         JSONObject jsonObject = new JSONObject(); 7         jsonObject.put("code", 1); 8         CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver( 9                 request.getSession().getServletContext());10         if (multipartResolver.isMultipart(request)) {11             MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;12             Iterator
iter = multiRequest.getFileNames();13 while (iter.hasNext()) {14 MultipartFile file = multiRequest.getFile(iter.next().toString());15 if (file != null) {16 String fileName = file.getOriginalFilename();17 String uuid = UUID.randomUUID().toString().replaceAll("-", "");18 String fileType = "jpg";19 if (fileName.indexOf(".") > -1) {20 fileType = fileName.substring(fileName.lastIndexOf("."));21 }22 String path = "D://kabuqinuo/Head Portraits/" + uuid + fileType;23 File newFile = new File(path);24 if (!newFile.getParentFile().exists()) {25 // 如果目标文件所在的目录不存在,则创建父目录26 newFile.getParentFile().mkdirs();27 }28 file.transferTo(new File(path));29 if (ImageUtils.judegSize(newFile)){
//判断文件是否过大30 String uuids = uuid.substring(0, uuid.length()-1);31 String path1 = "D://kabuqinuo/Head Portraits/" + uuids + fileType;32 Thumbnails.of(path).scale(1f).outputQuality(0.25f).toFile(path1);33 ImageUtils.deleteFile(path);//删除原文件34 jsonObject.put("code", 0);35 jsonObject.put("msg", uuids + fileType);36 } else {37 jsonObject.put("code", 0);38 jsonObject.put("msg", uuid + fileType);39 }40 }41 }42 }43 response.setHeader("Content-Type", "text/html");44 response.getWriter().write(jsonObject.toString());45 }
View Code

然后就是响应的过程:前端接收到返回的图片相对路径后,一方面替换掉之前的图片路径,一方面把新的图片路径放入隐藏输入框中待提交更新数据库:

代码写完。

转载于:https://www.cnblogs.com/ka-bu-qi-nuo/p/10405515.html

你可能感兴趣的文章
CentOS 6.9使用Shell脚本实现FTP自动上传和下载文件
查看>>
#51CTO学院四周年#我与51CTO不得不说多的故事
查看>>
java函数参数默认值
查看>>
远程关机对企业的意义
查看>>
Kafka笔记整理(三):消费形式验证与性能测试
查看>>
WINPE集成SCSI/RAID驱动
查看>>
我们为什么需要大数据?
查看>>
单例模式-singleton
查看>>
自动布局下的iPhone 6 plus等比例放大,且UITextfield失败关于placeholder的原因
查看>>
利用div实现邮件收件人的输入框
查看>>
我的友情链接
查看>>
单页布局
查看>>
我的友情链接
查看>>
综合布线详细方案设计
查看>>
rhel6.3下安装GCC4.8.1
查看>>
大图片生成缩略图 导致imagecreatefromjpeg 内存崩溃问题
查看>>
我的友情链接
查看>>
手工恢复
查看>>
二 IOC再探
查看>>
一些常用软件的网络端口协议分类介绍
查看>>