avatar.html 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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" 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 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. //根据MIME判断上传的文件是不是图片类型
  41. if((options.imgSrc).indexOf("image/")==-1){
  42. parent.layer.alert("文件格式错误,请上传图片类型,如:JPG,JEPG,PNG后缀的文件。", {icon: 2,title:"系统提示"});
  43. } else {
  44. cropper = $('.imageBox').cropbox(options);
  45. }
  46. }
  47. reader.readAsDataURL(this.files[0]);
  48. })
  49. $('#blobSubmit').on('click', function(){
  50. var img = cropper.getBlob();
  51. var formdata = new FormData();
  52. formdata.append("avatarfile", img);
  53. formdata.append("userId", $("#userId").val());
  54. $.ajax({
  55. url: ctx + "system/user/profile/updateAvatar",
  56. data: formdata,
  57. type: "post",
  58. processData: false,
  59. contentType: false,
  60. success: function(result) {
  61. if (result.code == "0") {
  62. parent.layer.msg("修改成功,正在刷新数据请稍后……",{icon:1,time: 500,shade: [0.1,'#fff']},function(){
  63. $.parentReload();
  64. });
  65. }else{
  66. $.modalAlert(result.msg, "error");
  67. }
  68. }
  69. })
  70. })
  71. $('#btnCrop').on('click', function(){
  72. var img = cropper.getDataURL();
  73. $('.cropped').html('');
  74. $('.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>');
  75. $('.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>');
  76. $('.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>');
  77. })
  78. $('#btnZoomIn').on('click', function(){
  79. cropper.zoomIn();
  80. })
  81. $('#btnZoomOut').on('click', function(){
  82. cropper.zoomOut();
  83. })
  84. });
  85. </script>
  86. </body>
  87. </html>