找回密码
 注册加入

扫一扫,极速登录

QQ登录

只需一步,快速开始

搜索
查看: 351|回复: 0

结合jQuery-photoClip手机端头像剪裁上传

[复制链接]
发表于 2023-11-30 08:12:11 | 显示全部楼层 |阅读模式

结合jQuery-photoClip手机端头像剪裁上传,支持手势缩放。
post的是base64,后端处理base64转存图片。
自己美化下就OK了
在论坛找了半天,没有合适的手机端传图js的插件,自己去网上找了下,看这个插件还不错,分享给大家。
高人请飘过,勿喷。
后台的转base64是借本站一个帖子里的,想不起来在哪了,跟作者说声不好意思!
前端HTML代码。
  1. <style>
  2. body {
  3.     margin: 0;
  4.     text-align: center;
  5. }
  6. #clipArea {
  7.     margin: 20px;
  8.     height: 300px;
  9. }
  10. #file,
  11. #clipBtn {
  12.     margin: 20px;
  13. }
  14. #view {
  15.     margin: 0 auto;
  16.     width: 200px;
  17.     height: 200px;
  18. }
  19. </style>
  20. </head>
  21. <body ontouchstart="">
  22. <div id="clipArea"></div>
  23. <input type="file" id="file">
  24. <button id="clipBtn">截取</button>
  25. <div id="view"></div>
  26. <script src="__PUBLIC__/jQuery-photoClip-master/js/jquery-2.1.3.min.js"></script>
  27. <script src="__PUBLIC__/jQuery-photoClip-master/js/iscroll-zoom.js"></script>
  28. <script src="__PUBLIC__/jQuery-photoClip-master/js/hammer.js"></script>
  29. <script src="__PUBLIC__/jQuery-photoClip-master/js/jquery.photoClip.js"></script>
  30. <script>
  31. //document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
  32. $("#clipArea").photoClip({
  33.     width: 200,
  34.     height: 200,
  35.     file: "#file",
  36.     view: "#view",
  37.     ok: "#clipBtn",
  38.     loadStart: function() {
  39.         console.log("照片读取中");
  40.     },
  41.     loadComplete: function() {
  42.         console.log("照片读取完成");
  43.     },
  44.     clipFinish: function(dataURL) {
  45.         
  46.         $.ajax({
  47.             url:"<{:U('login/upload')}>",
  48.             data:{str:dataURL},
  49.             type:'post',
  50.             dataType:'json',
  51.          })
  52.     }
  53. });
  54. </script>
复制代码


后端控制器代码为
  1.     public function upload(){
  2.         $base64 = I('post.str');
  3.         if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64, $result)){
  4.           $type = $result[2];
  5.           $new_file = "./Uploads/".time().".{$type}";
  6.           if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64)))){
  7.             echo '新文件保存成功:', $new_file;
  8.           }
  9.          }
  10. }
复制代码


JS插件请到github下载https://github.com/baijunjie/jQuery-photoClip
您需要登录后才可以回帖 登录 | 注册加入  

本版积分规则

Archiver|手机版|小黑屋|Discuz!扩展中心 ( 浙ICP备14042422号-1 )|网站地图QQ机器人

GMT+8, 2024-4-28 14:09 , Processed in 0.163469 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表