• 多图上传预览


    链接:http://www.jq22.com/jquery-info21055

    效果:

    代码:

    <!DOCTYPE html>
    <html lang="en" xmlns="http://www.w3.org/1999/html">
    <head>
        <meta charset="UTF-8">
        <title>jQuery多图片上传</title>
    </head>
    <style>
    
        .add_div {
            width: 400px;
            height: 500px;
            border: solid #ccc 1px;
            margin-top: 40px;
            margin-left: 170px;
            padding-left: 20px;
        }
    
        .file-list {
            height: 125px;
            display: none;
            list-style-type: none;
        }
    
        .file-list img {
            max-width: 70px;
            vertical-align: middle;
        }
    
        .file-list .file-item {
            margin-bottom: 10px;
            float: left;
            margin-left: 20px;
        }
    
    
        .file-list .file-item .file-del {
            display: block;
            margin-left: 20px;
            margin-top: 5px;
            cursor: pointer;
        }
    
    
    </style>
    <body>
    <div class="add_div">
        <!--<p>-->
            <!--<span>分类:</span>-->
            <!--<select name="select" style="120px;" id="catgory">-->
                <!--<option value="0">顶级分类</option>-->
                <!--<foreach name="list" item="v">-->
                    <!--<if condition="$check eq $v['id']">-->
                        <!--<option value="{$v.id}" selected><?php echo str_repeat("&brvbar;&#45;&#45;",$v["lev"]).$v["name"]?></option>-->
                        <!--<else/>-->
                        <!--<option value="{$v.id}"><?php echo str_repeat("&brvbar;&#45;&#45;",$v["lev"]).$v["name"]?></option>-->
                    <!--</if>-->
                <!--</foreach>-->
            <!--</select>-->
        <!--</p>-->
    
        <p>
            <span>名称:</span>
            <input type="text" name="" id="name" value=""/>
        </p>
        <!--<p>-->
            <!--<span>价格:</span>-->
            <!--<input type="text" id="price"/>-->
        <!--</p>-->
        <p>
            <span>图片:</span>
            <input type="file" name="" id="choose-file" multiple="multiple"/>
            <!--<input type="file" name="" id="choose-file" />-->
        </p>
        <p>
        <ul class="file-list ">
    
        </ul>
        </p>
        <!--<p style="">-->
            <!--<span style="display: block;">描述:</span>-->
            <!--<textarea id="desc" rows="3" cols="16" style="margin-left: 50px;margin-top: -20px;">-->
    
            <!--</textarea>-->
        <!--</p>-->
        <!--<p>-->
            <!--<span>库存:</span>-->
            <!--<input type="text" name="" id="stock" value=""/>-->
        <!--</p>-->
        <!--<p>-->
            <!--<span>状态:</span>-->
            <!--<input type="radio" name="status" value="1"/>显示-->
            <!--<input type="radio" name="status" value="0"/>隐藏-->
        <!--</p>-->
        <button style="cursor: pointer;margin-left: 150px;" href="javascript:;" id="upload">上传</button>
    
    </div>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/layer/2.3/layer.js"></script>
    <script>
    
        $(function () {
            ////////////////////////////////////////////////图片上传//////////////////////////////////////////////
            //声明变量
            var $button = $('#upload'),
                //选择文件按钮
                $file = $("#choose-file"),
                //回显的列表
                $list = $('.file-list'),
                //选择要上传的所有文件
                fileList = [];
            //当前选择上传的文件
            var curFile;
            // 选择按钮change事件,实例化fileReader,调它的readAsDataURL并把原生File对象传给它,
            // 监听它的onload事件,load完读取的结果就在它的result属性里了。它是一个base64格式的,可直接赋值给一个img的src.
            $file.on('change', function (e) {
                //上传过图片后再次上传时限值数量
                var numold = $('li').length;
                if(numold >= 6){
                    layer.alert('最多上传6张图片');
                    return;
                }
                //限制单次批量上传的数量
                var num = e.target.files.length;
                var numall = numold + num;
                if(num >6 ){
                   layer.alert('最多上传6张图片');
                   return;
                }else if(numall > 6){
                    layer.alert('最多上传6张图片');
                    return;
                }
                //原生的文件对象,相当于$file.get(0).files;//files[0]为第一张图片的信息;
                curFile = this.files;
                //curFile = $file.get(0).files;
                //console.log(curFile);
                //将FileList对象变成数组
                fileList = fileList.concat(Array.from(curFile));
                //console.log(fileList);
                for (var i = 0, len = curFile.length; i < len; i++) {
                    reviewFile(curFile[i])
                }
                $('.file-list').fadeIn(2500);
            })
    
    
            function reviewFile(file) {
                //实例化fileReader,
                var fd = new FileReader();
                //获取当前选择文件的类型
                var fileType = file.type;
                //调它的readAsDataURL并把原生File对象传给它,
                fd.readAsDataURL(file);//base64
                //监听它的onload事件,load完读取的结果就在它的result属性里了
                fd.onload = function () {
                    if (/^image/[jpeg|png|jpg|gif]/.test(fileType)) {
                        $list.append('<li style="border:solid red px; margin:5px 5px;" class="file-item"><img src="' + this.result + '" alt="" height="70"><span class="file-del">删除</span></li>').children(':last').hide().fadeIn(2500);
                    } else {
                        $list.append('<li class="file-item"><span class="file-name">' + file.name + '</span><span class="file-del">删除</span></li>')
                    }
    
                }
            }
    
            //点击删除按钮事件:
            $(".file-list").on('click', '.file-del', function () {
                let $parent = $(this).parent();
                console.log($parent);
                let index = $parent.index();
                fileList.splice(index, 1);
                $parent.fadeOut(850, function () {
                    $parent.remove()
                });
                //$parent.remove()
            });
            //点击上传按钮事件:
            $button.on('click', function () {
                var name = $('#name').val();
                // var catgory = $('#catgory').val();
                // var price = $('#price').val();
                // var desc = $('#desc').val();
                // var stock = $('#stock').val();
                // var status = $("input[type='radio']:checked").val();
                // var reg = /^[1-9]d*$/;
                // if (!(reg.test(stock))) {
                //     layer.alert('商品库存为整数!');
                //     return;
                // }
                if (name == '') {
                    layer.alert('请输入商品名称');
                    return;
                }
                // else if (status == null) {
                //     layer.alert('请输入商品显示状态');
                //     return;
                // }
                // else if (catgory == '') {
                //     layer.alert('请输入商品分类');
                //     return;
                // }
                // else if (price == '') {
                //     layer.alert('请输入商品价格');
                //     return;
                // }
                // else if (stock == '') {
                //     layer.alert('请输入商品库存');
                //     return;
                // }
                // else if (fileList.length == 0) {
                //     layer.alert('请选择商品图片');
                //     return;
                // }
                 if(fileList.length > 6){
                        layer.alert('最多允许上传6张图片');
                        return;
                } else {
                    var formData = new FormData();
                    for (var i = 0, len = fileList.length; i < len; i++) {
                        //console.log(fileList[i]);
                        formData.append('upfile[]', fileList[i]);
                    }
                    formData.append('name', name);
                    // formData.append('catgory', catgory);
                    // formData.append('price', price);
                    // formData.append('desc', desc);
                    // formData.append('stock', stock);
                    // formData.append('status', status);
                    //console.log(formData);
                    $.ajax({
                        url: './product_add.php',
                        type: 'post',
                        data: formData,
                        dataType: 'json',
                        processData: false,
                        contentType: false,
                        success: function (data) {
                            if (data.status == '1') {
                                layer.msg(data.content, {icon: 6});
                            } else if (data.status == '2') {
                                layer.msg(data.content, {icon: 1});
                            }
                        }
                    })
                }
            })
        })
    
    
    </script>
    </body>
    </html>
  • 相关阅读:
    好的 文章链接汇总
    webpack之postcss集成
    移动端适配方法合集
    每天干的啥?(2017.3)
    每天干的啥?(2017.2)
    【2016年终总结】
    每天干的啥?(2017.1)
    PHP获取接口数据(模拟Get)
    每天干的啥?(2016.12)
    更换域名后的数据库sql的执行命令
  • 原文地址:https://www.cnblogs.com/wanlibingfeng/p/10429874.html
Copyright © 2020-2023  润新知