avatar.html 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <!DOCTYPE html>
  2. <html lang="zh" xmlns:th="http://www.thymeleaf.org" >
  3. <meta charset="utf-8">
  4. <title>用户头像修改</title>
  5. <link th:href="@{/ajax/libs/cropbox/cropbox.css}" rel="stylesheet"/>
  6. <body class="white-bg">
  7. <input name="userId" id="userId" type="hidden" th:value="${user.userId}" />
  8. <div class="container">
  9. <div class="imageBox">
  10. <div class="thumbBox"></div>
  11. <div class="spinner" style="display: none">Loading...</div>
  12. </div>
  13. <div class="action">
  14. <div class="new-contentarea tc">
  15. <a href="javascript:void(0)" class="upload-img"> <label for="avatar">上传图像</label> </a>
  16. <input type="file" class="" name="avatar" id="avatar" accept="image/*"/>
  17. </div>
  18. <input type="button" id="btnCrop" class="Btnsty_peyton" value="裁切" />
  19. <input type="button" id="btnZoomIn" class="Btnsty_peyton" value="+" />
  20. <input type="button" id="btnZoomOut" class="Btnsty_peyton" value="-" />
  21. <input type="button" id="blobSubmit" class="Btnsty_peyton" value="提交" />
  22. </div>
  23. <div class="cropped"></div>
  24. </div>
  25. <div th:include="include::footer"></div>
  26. <script th:src="@{/ajax/libs/cropbox/cropbox.js}"></script>
  27. <script type="text/javascript">
  28. $(window).load(function() {
  29. var avatar = '[[${user.avatar}]]';
  30. var options = {
  31. thumbBox: '.thumbBox',
  32. spinner: '.spinner',
  33. imgSrc: $.common.isEmpty(avatar) ? '/img/profile.jpg' : '/profile/avatar/' + avatar
  34. }
  35. var cropper = $('.imageBox').cropbox(options);
  36. $('#avatar').on('change',
  37. function() {
  38. var reader = new FileReader();
  39. reader.onload = function(e) {
  40. options.imgSrc = e.target.result;
  41. //根据MIME判断上传的文件是不是图片类型
  42. if((options.imgSrc).indexOf("image/")==-1){
  43. parent.layer.alert("文件格式错误,请上传图片类型,如:JPG,JEPG,PNG后缀的文件。", {icon: 2,title:"系统提示"});
  44. } else {
  45. cropper = $('.imageBox').cropbox(options);
  46. }
  47. }
  48. reader.readAsDataURL(this.files[0]);
  49. })
  50. $('#blobSubmit').on('click', function(){
  51. var img = cropper.getBlob();
  52. var formdata = new FormData();
  53. formdata.append("avatarfile", img);
  54. formdata.append("userId", $("#userId").val());
  55. $.ajax({
  56. url: ctx + "system/user/profile/updateAvatar",
  57. data: formdata,
  58. type: "post",
  59. processData: false,
  60. contentType: false,
  61. success: function(result) {
  62. $.operate.saveSuccess(result);
  63. }
  64. })
  65. })
  66. $('#btnCrop').on('click', function(){
  67. var img = cropper.getDataURL();
  68. $('.cropped').html('');
  69. $('.cropped').append('<img src="'+img+'" align="absmiddle" style="width:64px;margin-top:4px;border-radius:64px;box-shadow:0px 0px 12px #7E7E7E;" ><p>64px*64px</p>');
  70. $('.cropped').append('<img src="'+img+'" align="absmiddle" style="width:128px;margin-top:4px;border-radius:128px;box-shadow:0px 0px 12px #7E7E7E;"><p>128px*128px</p>');
  71. $('.cropped').append('<img src="'+img+'" align="absmiddle" style="width:180px;margin-top:4px;border-radius:180px;box-shadow:0px 0px 12px #7E7E7E;"><p>180px*180px</p>');
  72. })
  73. $('#btnZoomIn').on('click', function(){
  74. cropper.zoomIn();
  75. })
  76. $('#btnZoomOut').on('click', function(){
  77. cropper.zoomOut();
  78. })
  79. });
  80. </script>
  81. </body>
  82. </html>