jquery实现多图选择上传图片效果代码

代码语言:html

所属分类:上传

代码描述:jquery实现多图选择上传图片效果代码,可以设置图片上传后端地址url及最大上传图片数量。

代码标签: jquery 多图 选择 上传 图片

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">




    <style>
        #img-container {
        
        }
        #img-container:after {
            content: '.';
            display: block;
            height: 0;
            visibility: hidden;
            overflow: hidden;
            clear: both;
        }
        .img-item {
            position: relative;
            float: left;
            margin-right: 10px;
            margin-bottom:10px;
            height:100px;
            width: 100px;
            box-sizing: border-box;
        }
        .img-thumb {
            border: 1px solid #000;
        }
        .thumb-icon {
            width: 100%;
            height: 100%;
        }
        .img-up-add {
            display: table;
            border: 1px dashed #E0E0E0;
        }
        .img-add-icon {
            display: table-cell;
            vertical-align: middle;
            text-align: center;
            font-size: 70px;
        }
        .img-remove {
            position: absolute;
            right: -0.1875rem;
            top: -0.1875rem;
            display: block;
            width: 20px;
            line-height: 20px;
            height:20px;
            border-radius: 50%;
            background: #f7333d;
            color: #fff;
            text-align: center;
            text-decoration: none;
          
            overflow: hidden;
            background-clip: padding-box;
        }
        #img-file-input {
            display: none;
        }
    </style>



</head>


<div id="upload">

</div>
<button class="submit">上传</button>

<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/jquery-3.2.1.min.js"></script>
<script>
    /**
     * tinyImgUpload
     * @param ele [string] [生成组件的元素的选择器]
     * @param options [Object] [对组件设置的基本参数]
     * options具体参数如下
     * path 图片上传的地址路径 必需
     * onSuccess(res) 文件上传成功后的回调 参数为返回的文本 必需
     * onFailure(res) 文件上传失败后的回调 参数为返回的文本 必需
     * @return [function] [执行图片上传的函数]
     * 调用方法
     * tinyImgUpload('div', options)
     */
    function tinyImgUpload(ele, options) {
        // 判断容器元素合理性并且添加基础元素
        var eleList = document.querySelectorAll(ele);
        if(eleList.length == 0){
            console.log('绑定的元素不存在');
            return;
        }else if(eleList.length>1){
            console.log('请绑定唯一元素');
            return;
        }else {
            eleList[0].innerHTML ='<div id="img-container" >'+
                    '<div class="img-up-add  img-item"> <span class="img-add-icon">+</span> </div>'+
                    '<input type="file" name="files" id="img-file-input" multiple>'+
                    '</div>';
            var ele = eleList[0].querySelector('#img-container');
            ele.files = [];   // 当前上传的文件数组
        }
    
        // 为添加按钮绑定点击事件,设置选择图片的功能
        var addBtn = document.querySelector('.img-up-add');
        addBtn.addEventListener('click',function () {
            document.querySelector('#img-file-input').value = null;
            document.querySelector('#img-file-input').click();
            return false;
        },false)
    
        // 预览图片
        //处理input选择的图片
        function handleFileSelect(evt) {
            var files = evt.target.files;
            
            if( options.maxnum<files.length){
                alert("最大上传图片数量为"+ options.maxnum);
                
                return;
            }
    
            for(var i=0, f; f=files[i];i++){
                // 过滤掉非图片类型文件
                if(!f.type.match('image.*')){
                    continue;
                }
                // 过滤掉重复上传的图片
                var tip = false;
                for(var j=0; j<(ele.files).length; j++){
                    if((ele.files)[j].name == f.name){
                        tip.........完整代码请登录后点击上方下载按钮下载查看

网友评论0