imgUp.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. $(function(){
  2. var delParent;
  3. var defaults = {
  4. fileType : ["jpg","png","bmp","jpeg","JPG","GIF","JPEG","PNG","BMP"], // 上传文件的类型
  5. fileSize : 1024 * 1024 * 10 // 上传文件的大小 10M
  6. };
  7. /*点击图片的文本框*/
  8. $(".file").change(function(){
  9. var idFile = $(this).attr("id");
  10. var file = document.getElementById(idFile);
  11. var imgContainer = $(this).parents(".z_photo"); //存放图片的父亲元素
  12. var fileList = file.files; //获取的图片文件
  13. var input = $(this).parent();//文本框的父亲元素
  14. var imgArr = [];
  15. //遍历得到的图片文件
  16. var numUp = imgContainer.find(".up-section").length;
  17. var totalNum = numUp + fileList.length; //总的数量
  18. if(fileList.length > 5 || totalNum > 5 ){
  19. alert("上传图片数目不可以超过5个,请重新选择"); //一次选择上传超过5个 或者是已经上传和这次上传的到的总数也不可以超过5个
  20. }
  21. else if(numUp < 5){
  22. fileList = validateUp(fileList);
  23. for(var i = 0;i<fileList.length;i++){
  24. var imgUrl = window.URL.createObjectURL(fileList[i]);
  25. imgArr.push(imgUrl);
  26. var $section = $("<section class='up-section fl loading'>");
  27. imgContainer.prepend($section);
  28. var $span = $("<span class='up-span'>");
  29. $span.appendTo($section);
  30. var $img0 = $("<img class='close-upimg'>").on("click",function(event){
  31. event.preventDefault();
  32. event.stopPropagation();
  33. $(".works-mask").show();
  34. delParent = $(this).parent();
  35. });
  36. uploadImg(fileList[i],$section,$img0,imgArr[i]);
  37. }
  38. }
  39. setTimeout(function(){
  40. $(".up-section").removeClass("loading");
  41. $(".up-img").removeClass("up-opcity");
  42. },450);
  43. numUp = imgContainer.find(".up-section").length;
  44. if(numUp >= 5){
  45. $(this).parent().hide();
  46. }
  47. });
  48. $(".z_photo").delegate(".close-upimg","click",function(){
  49. $(".works-mask").show();
  50. delParent = $(this).parent();
  51. });
  52. $(".wsdel-ok").click(function(){
  53. $(".works-mask").hide();
  54. var numUp = delParent.siblings().length;
  55. if(numUp < 6){
  56. delParent.parent().find(".z_file").show();
  57. }
  58. delParent.remove();
  59. });
  60. $(".wsdel-no").click(function(){
  61. $(".works-mask").hide();
  62. });
  63. function validateUp(files){
  64. var arrFiles = [];//替换的文件数组
  65. for(var i = 0, file; file = files[i]; i++){
  66. //获取文件上传的后缀名
  67. var newStr = file.name.split("").reverse().join("");
  68. if(newStr.split(".")[0] != null){
  69. var type = newStr.split(".")[0].split("").reverse().join("");
  70. if(jQuery.inArray(type, defaults.fileType) > -1){
  71. // 类型符合,可以上传
  72. if (file.size >= defaults.fileSize) {
  73. alert('您这个"'+ file.name +'"文件大小过大');
  74. } else {
  75. // 在这里需要判断当前所有文件中
  76. arrFiles.push(file);
  77. }
  78. }else{
  79. alert('您这个"'+ file.name +'"上传类型不符合');
  80. }
  81. }else{
  82. alert('您这个"'+ file.name +'"没有类型, 无法识别');
  83. }
  84. }
  85. return arrFiles;
  86. }
  87. function uploadImg(file, obj,img,imgurl) {
  88. $("#imguploadFinish").val(false);
  89. // 验证通过图片异步上传
  90. var url = "file/uploadPic.cs?fileType=160";
  91. var data = new FormData();
  92. data.append("path","");
  93. data.append("Filedata", file);
  94. $.ajax({
  95. type : 'POST',
  96. url : url,
  97. data : data,
  98. processData : false,
  99. contentType : false,
  100. dataType : 'json',
  101. success : function(data) {
  102. console.log("chenggong");
  103. // obj.remove();
  104. // 上传成功
  105. if (data.status == 1) {
  106. img.attr("src","").appendTo(obj);
  107. var $img = $("<img class='up-img up-opcity'>");
  108. $img.attr("src",imgurl);
  109. $img.appendTo(obj);
  110. var $p = $("<p class='img-name-p'>");
  111. $p.html(file.name).appendTo(obj);
  112. var $input = $("<input id='taglocation' name='taglocation' value='' type='hidden'>");
  113. $input.appendTo(obj);
  114. var $input2 = $("<input id='tags' name='tags' value='' type='hidden'/>");
  115. $input2.appendTo(obj);
  116. $(".up-section").removeClass("loading");
  117. $(".up-img").removeClass(
  118. "up-opcity");
  119. $("#imguploadFinish").val(true);
  120. var htmlStr = "<input type='hidden' name='friend_imgs' value='"
  121. + data.path
  122. + "'>";
  123. obj.append(htmlStr);
  124. /* if (successCallBack) {
  125. successCallBack(data);
  126. }*/
  127. return true;
  128. }else{
  129. obj.remove();
  130. $("#imguploadFinish").val(false);
  131. alert("上传失败!");
  132. return false;
  133. }
  134. /*if (data.status != 1) {
  135. obj.remove();
  136. $("#imguploadFinish").val(false);
  137. if (errorCallBack) {
  138. errorCallBack(data.url);
  139. }
  140. }*/
  141. },
  142. error : function(e) {
  143. obj.remove();
  144. var err = "上传失败,请联系管理员!";
  145. $("#imguploadFinish").val(false);
  146. alert(err)
  147. /*if (errorCallBack) {
  148. errorCallBack(err);
  149. }*/
  150. }
  151. });
  152. }
  153. })