zoukankan      html  css  js  c++  java
  • 上传多张图片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;
            }
            
    
        
        
        
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    })
    View Code
    
    

     
  • 相关阅读:
    PTA(Advanced Level)1037.Magic Coupon
    PTA(Advanced Level)1033.To Fill or Not to Fill
    PTA(Basic Level)1020.月饼
    PTA(Advanced Level)1048.Find Coins
    PTA(Advanced Level)1050.String Subtraction
    PTA(Advanced Level)1041.Be Unique
    PTA(Basci Level)1043.输出PATest
    PTA(Basic Level)1039.到底买不买
    PTA(Basic Level)1033.旧键盘打字
    PTA(Advanced Level)1083.List Grades
  • 原文地址:https://www.cnblogs.com/dazhangli/p/8268034.html
Copyright © 2011-2022 走看看