多图上传预览

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

效果:

多图上传预览_第1张图片

 

代码:

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>
        <input type="text" name="" id="name" value=""/>
    p>
    
        
        
    
    <p>
        <span>图片:span>
        <input type="file" name="" id="choose-file" multiple="multiple"/>
        
    p>
    <p>
    <ul class="file-list ">

    ul>
    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('
  • ' + this.result + '" alt="" height="70">删除
  • ').children(':last').hide().fadeIn(2500); } else { $list.append('
  • ' + file.name + '删除
  • ') } } } //点击删除按钮事件: $(".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>

     

    转载于:https://www.cnblogs.com/wanlibingfeng/p/10429874.html

    你可能感兴趣的:(多图上传预览)