上传多张图片imgupload
<tr> <td class="listtitle-up">尿素箱</td> <td> <div class="comtainerimg upimg-div floatleft"> <input type="hidden" value="" id="photo-4" name=""/> </div> <div class="z_photo floatleft" > <section class="z_file fl"> <img src="mrm/css/bigimg/a11.png" class="add-img"> <input type="file" name="file" id="file4" class="file" value="" accept="image/jpg,image/jpeg,image/png,image/bmp,image/PNG" multiple style="opacity: 0"/> </section> </div> <a class="removelist" href="javascript:"> <i class="fa fa-trash-o" ></i> <a> </td> </tr> <aside class="mask works-mask" style="display: none;"> <div class="mask-content"> <h3>删除图片</h3> <p class="del-p">您确定要删除吗?</p> <p class="check-p"><span class="del-com wsdel-ok"><i class="glyphicon glyphicon-ok"></i> 确定</span><span class="wsdel-no"><i class="glyphicon glyphicon-remove"></i>取消</span></p> </div> </aside>
$(function(){ var delParent; var defaults = { fileType : ["jpg","png","bmp","jpeg","PNG"], // 上传文件的类型 fileSize : 1024 * 1024 * 10 // 上传文件的大小 10M }; /*点击图片的文本框*/ var j=0; $(document).on('change','.file',function(){ var imgsrc= "";//声明图片的路径 var creatarry=new Array(); // $(".file").change(function(){alert("1"); var idFile = $(this).attr("id"); var file = document.getElementById(idFile); var imgContainer = $(this).parents(".z_photo").siblings('.comtainerimg'); //存放图片的父亲元素 var fileList = file.files; //获取的图片文件 console.log(fileList+"======filelist====="); var input = $(this).parent();//文本框的父亲元素 var imgArr = []; //遍历得到的图片文件 var numUp = imgContainer.find(".up-section").length; var totalNum = numUp + fileList.length; //总的数量 // 声明新input var newinput="<input type='file' name='file' id='newfile' class='file' value='' accept='image/jpg,image/jpeg,image/png,image/bmp,image/PNG' multiple style='opacity: 0'/>"; // if(fileList.length > 5 || totalNum > 5 ){ // alert("上传图片数目不可以超过5个,请重新选择"); //一次选择上传超过5个 或者是已经上传和这次上传的到的总数也不可以超过5个 // } // else if(numUp < 5){ fileList = validateUp(fileList); for(var i = 0;i<fileList.length;i++){ var imgUrl = window.URL.createObjectURL(fileList[i]); imgArr.push(imgUrl); var $section = $("<section class='up-section fl loading'>"); imgContainer.append($section); var $span = $("<span class='up-span'>"); $span.html(fileList[i].name).appendTo($section); var $img0 = $("<img class='close-upimg' src='/hvdm/r/mrm/css/bigimg/a7.png'>").on("click",function(event){ event.preventDefault(); event.stopPropagation(); $(".works-mask").show(); delParent = $(this).parent(); }); $img0.appendTo($section); var $a = $("<a rel='lightbox-group'>"); $a.attr("href",imgArr[i]); var $img = $("<img class='up-img up-opcity'>"); $img.attr("src",imgArr[i]); $img.appendTo($a); $a.appendTo($section); var $p = $("<p class='img-name-p'>"); $p.html(fileList[i].name).appendTo($section); var $input = $("<input id='taglocation' name='taglocation' value='' type='hidden'>"); $input.appendTo($section); var $input2 = $("<input id='tags' name='tags' value='' type='hidden'/>"); $input2.appendTo($section); // imgsrc+=imgArr[i]+",";//循环 累加href值 imgsrc+=imgArr[i];//循环 累加href值 creatarry.push(imgArr[i]);//将href各个 值存入到数组中 } var srcval=imgContainer.find("section").siblings('input').val(); //第二次点击添加图片 之前的href链接地址; if(srcval){//如果有地址 说明是第二次点击效果; var oldsrc=srcval.split(";"); //将之前存入的 链接 转为数组 oldsrc.concat(creatarry); //并拼接 现在上传点击的图片链接 imgContainer.find("section").siblings('input').val(oldsrc.concat(creatarry).join(';'));//并赋给 input值 setTimeout(function(){ //执行加载效果,结束事件 $(".up-section").removeClass("loading"); $(".up-img").removeClass("up-opcity"); },450); // console.log($('.file').val());$('.file').val(''); $(this).hide(); console.log($(this).val()); $(this).parents('.z_file').append("<input type='file' name='file' id='newfile" + j + "' class='file' value='' accept='image/jpg,image/jpeg,image/png,image/bmp,image/PNG' multiple style='opacity: 0'/>"); j=j+1; return false; } imgContainer.find("section").siblings('input').val(creatarry.join(';')+";"+imgContainer.parents("tr").find(".listtitle-up").html());//给隐藏域追加所有href值 if(srcval){alert("0"); var newvalue=imgContainer.find("section").siblings('input').val(creatarry.join(';')+";"+imgContainer.parents("tr").find(".listtitle-up").html()); alert("1"); imgContainer.find("section").siblings('input').val(newvalue); } // } setTimeout(function(){ $(".up-section").removeClass("loading"); $(".up-img").removeClass("up-opcity"); },450); numUp = imgContainer.find(".up-section").length; if(numUp >= 5){ // $(this).parent().hide(); } //input内容清空 // $(this).val(""); //限制字符个数 $(".up-span").each(function() { var maxwidth = 6; if ($(this).text().length > maxwidth) { $(this).text($(this).text().substring(0, maxwidth)); $(this).html($(this).html() + '...'); } }); $(this).hide(); console.log($(this).val()); $(this).parents('.z_file').append("<input type='file' name='file' id='newfile" + j + "' class='file' value='' accept='image/jpg,image/jpeg,image/png,image/bmp,image/PNG' multiple style='opacity: 0'/>"); j=j+1; console.log(j); }); $(".z_photo").delegate(".close-upimg","click",function(){ $(".works-mask").show(); delParent = $(this).parent(); imgsrcs=$(this).parents("section").siblings('input'); }); $(".wsdel-ok").click(function(){ $(".works-mask").hide(); var numUp = delParent.siblings().length; // var srcall=imgsrcs.val(); if(numUp < 6){ delParent.parent().find(".z_file").show(); } var srcinput=delParent.siblings('input');//声明 被删除的 行中的隐藏input var srcall=delParent.siblings('input').val();//声明input的值 var srcallarry=srcall.split(';');//将input的val值转为数组 var thissrc=delParent.find('a').attr('href'); //查找要删除的图片链接值 delParent.remove(); //移除 section 标签域 // var nullarry=new Array();//声明空 数组 for(var j=0;j<=srcallarry.length;j++){//循环 input中 的val值 ,除需要删除的链接值 if(srcallarry[j]==thissrc){ srcallarry.splice(j,1); j=j-1; // nullarry.push(srcallarry[j]);//将除删除连接的值存入空数组 } } srcinput.val(srcallarry.join(';'));//新数组的值 赋给input if(numUp==1){ srcinput.val(''); } }); $(".wsdel-no").click(function(){ $(".works-mask").hide(); }); function validateUp(files){ var arrFiles = [];//替换的文件数组 for(var i = 0, file; file = files[i]; i++){ //获取文件上传的后缀名 var newStr = file.name.split("").reverse().join(""); if(newStr.split(".")[0] != null){ var type = newStr.split(".")[0].split("").reverse().join(""); console.log(type+"===type==="); if(jQuery.inArray(type, defaults.fileType) > -1){ // 类型符合,可以上传 if (file.size >= defaults.fileSize) { alert(file.size); alert('您这个"'+ file.name +'"文件大小过大'); } else { // 在这里需要判断当前所有文件中 arrFiles.push(file); } }else{ alert('您这个"'+ file.name +'"上传类型不符合'); } }else{ alert('您这个"'+ file.name +'"没有类型, 无法识别'); } } return arrFiles; } })