avatar.html 3.3 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 href="/ajax/libs/cropbox/cropbox.css" 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" />
  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 src="/ajax/libs/cropbox/cropbox.js" th:src="@{/ajax/libs/cropbox/cropbox.js}"></script>
  27. <script type="text/javascript">
  28. $(window).load(function() {
  29. var options = {
  30. thumbBox: '.thumbBox',
  31. spinner: '.spinner',
  32. imgSrc: '/img/profile.jpg'
  33. }
  34. var cropper = $('.imageBox').cropbox(options);
  35. $('#avatar').on('change',
  36. function() {
  37. var reader = new FileReader();
  38. reader.onload = function(e) {
  39. options.imgSrc = e.target.result;
  40. cropper = $('.imageBox').cropbox(options);
  41. }
  42. reader.readAsDataURL(this.files[0]);
  43. })
  44. $('#blobSubmit').on('click', function(){
  45. var img = cropper.getBlob();
  46. var formdata = new FormData();
  47. formdata.append("avatarfile", img);
  48. formdata.append("userId", $("#userId").val());
  49. $.ajax({
  50. url: ctx + "system/user/profile/updateAvatar",
  51. data: formdata,
  52. type: "post",
  53. processData: false,
  54. contentType: false,
  55. success: function(result) {
  56. if (result.code == "0") {
  57. parent.layer.msg("修改成功,正在刷新数据请稍后……",{icon:1,time: 500,shade: [0.1,'#fff']},function(){
  58. $.parentReload();
  59. });
  60. }else{
  61. $.modalAlert(result.msg, "error");
  62. }
  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>