addPhoto.html 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <style>
  2. .plusForm div.btn {padding: 0px; }
  3. .plusForm .content div{margin-bottom: 0px;}
  4. #filePicker>.webuploader-pick{background: none; color: #000000; padding: 0px; height: 29px; line-height: 29px; width: 98px; border: none;}
  5. </style>
  6. <div class="plusForm photo">
  7. <div>
  8. <div class="title">Add Photo Shot</div>
  9. <div class="close"><a href="javascript:;"><img src="<%=public_path%>/img/close-btn.png" alt=""/></a></div>
  10. </div>
  11. <div class="content">
  12. <div>Photo <label>(PNG, JPEG and JPG format only, less than 6MB. Image size must be between 640 * 640 pixel and 6000 * 6000 pixel.)</label></div>
  13. <input class="uploadFile" id="uploadFile" disabled="disabled" style="background: none;" placeholder=""/>
  14. <div class="fileUpload btn btn-primary" style="margin-bottom: 2px;">
  15. <div id="filePicker">Browse photo</div>
  16. <input type="hidden" name="img" value="">
  17. </div>
  18. <div>
  19. <div>Description <label>(48 - 140 characters.)</label></div>
  20. <textarea name="paragraph" maxlength="140" placeholder="" style="width: 488px; height:100px; resize: none;"></textarea>
  21. <div class="tips" style="float: right;"><label id="descriptionNumber" style="color: red;">0</label> / 140</div>
  22. <div class="clear"></div>
  23. </div>
  24. <div style="margin-bottom: 15px;">
  25. <div>Appear to profile page:</div>
  26. <select name="is_show_profile" style="width: 209px;">
  27. <option value="1">Yes</option>
  28. <option value="0">No</option>
  29. </select>
  30. </div>
  31. <button class="Submit cursor">Submit</button>
  32. <img id="text" src="">
  33. </div>
  34. </div>
  35. <script>
  36. $(function(){
  37. $('textarea[name="paragraph"]').on('input', function(){
  38. let description = $(this).val();
  39. $('#descriptionNumber').text(description.length);
  40. })
  41. //创建文件上传
  42. var uploader = WebUploader.create({
  43. auto: true,
  44. fileSingleSizeLimit: 1024*1024*6,
  45. swf: '<%=public_path%>' + '/js/webuploader/Uploader.swf',
  46. server: '<%=server_host%>/api/?act=uploadDynamicImg',
  47. pick: '#filePicker',
  48. accept: {
  49. title: 'Images',
  50. extensions: 'jpg,jpeg,png',
  51. mimeTypes: 'image/jpg,image/jpeg,image/png'
  52. },
  53. compress: null
  54. });
  55. // 图片上传中
  56. var uploadProgress = 0;//防止重复提示
  57. var load = '';
  58. uploader.on( 'uploadProgress', function( file, percentage ) {
  59. if (!uploadProgress) {
  60. load = layer.load(2);
  61. }
  62. uploadProgress = 1//等于1表示不上传动作已经开启
  63. });
  64. //文件上传成功
  65. uploader.on( 'uploadSuccess', function( file, response) {
  66. if(response.errno == 13){
  67. myParentAlert("The image size must be larger than 640px(width) * 640px(height).");
  68. }
  69. if(response.errno == 14){
  70. myParentAlert("The photo resolution can not be larger than 6000 * 6000.");
  71. }
  72. uploader.removeFile(file);//从队列中移除上传的文件,以便可以重复上传
  73. if(response.errno == 0){
  74. $('#uploadFile').val(file.name);
  75. $('input[name="img"]').val(response.data.url);
  76. }
  77. uploadProgress =0;//重置开关
  78. layer.close(load);
  79. });
  80. //文件上传失败
  81. uploader.on( 'uploadError', function( file ) {
  82. myParentAlert("Failed to upload. Please try again.");
  83. uploadProgress = 0;//重置开关
  84. layer.close(load);
  85. });
  86. //错误提示
  87. uploader.on("error", function (type) {
  88. if(type == "Q_TYPE_DENIED"){
  89. myParentAlert("Incorrect format. Only JPG, JPEG and PNG format allowed. File size must be 6M or less.");
  90. }
  91. if(type == "F_EXCEED_SIZE"){
  92. myParentAlert("Incorrect format. Only JPG, JPEG and PNG format allowed. File size must be 6M or less.");
  93. }
  94. });
  95. var index = parent.layer.getFrameIndex(window.name);
  96. parent.layer.iframeAuto(index);
  97. $('.close').click(function(){
  98. parent.layer.close(index);
  99. })
  100. var change_status = 0;//防止多次点击
  101. $('.Submit').click(function(){
  102. if(change_status){
  103. return false;
  104. }
  105. change_status = 1;
  106. var img = $('input[name="img"]').val();
  107. if(!img){
  108. myParentAlert('Please select an valid photo.');
  109. change_status = 0;
  110. return false;
  111. }
  112. var paragraph = $('textarea[name="paragraph"]').val();
  113. paragraph = paragraph.trim();
  114. if(paragraph.length<48){
  115. myParentAlert('Please enter at least 48 characters of description.');
  116. change_status = 0;
  117. return false;
  118. }
  119. var is_show_profile = $('select[name="is_show_profile"]').val();
  120. $.post('/broadcast/shotsLayer/addPhoto', {img:img,paragraph:paragraph,is_show_profile:is_show_profile}, function(data){
  121. if(data.errno == 0) {
  122. Cookies.set('add_success_photo', {status:1});
  123. parent.layer.close(index);
  124. parent.layer.msg('Submit successfully. Auditing soon.');
  125. }else{
  126. myParentAlert('Failed to submit. Please try again.');
  127. change_status = 0;
  128. }
  129. })
  130. })
  131. })
  132. </script>