jquery input file 多图上传,单张删除,查看

<div class="form-group">
                                <label for="imgs" class="col-md-3 col-sm-3 control-label">设备图片:</label>
                                <div class="col-md-8 col-sm-8">
                                    <div class="photo-box">
                                        <div class="photo-box-icon">
                                            <img style="width: 100%;" src="../../img/H5_addPhoto.png" alt="图片">
                                            <input type="file" onchange="addPhoto(this,event)" accept="image/gif,image/jpeg,image/jpg,image/png,image/svg" id="imgs" />
                                        </div>
                                    </div>
                                </div>
                            </div>
.photo-box {
    padding: 10px;
    display: inline-block;
}

.photo-box-icon {
    width: 50px;
    height: 50px;
    display: inline-block;
    position: relative;
}

.photo-box-icon img {
    width: 100%;
    height: 100%;
}

.photo-box-icon input {
    width: 50px;
    height: 50px;
    position: absolute;
    top: 0;
    opacity: 0;
}

.photo-add {
    /*width: 230px;*/
    width: 100px;
    height: 100px;
    display: inline-block;
    margin-right: 10px;
    margin-bottom: 10px;
    border: 1px solid #32c5d2;
    position: relative;
    z-index: 9;
    margin: 6px;
    overflow: hidden;
}

.photo-add img {
    width: 100%;
    height: 100%;
    background-size: contain;
}

.photo-add .closeIcon {
    position: absolute;
    top: 0;
    background: #000;
    opacity: 0.6;
    height: 20px;
    width: 100%;
    display: none;
}

.photo-add .closeIcon .delPhoto-btn {
    position: absolute;
    right: 0;
    width: 20px;
    height: 18px;
    top: 1px;
    text-align: center;
    cursor: pointer;
    color: #fff;
}
//图片上传var attachmentArr = [];
function addPhoto(file, e) {
    var fileObj = file.files[0];
    var formData = new FormData();
    formData.append(‘upfile‘, fileObj);
    var options = {
        url: urls + "/file/uploadImage",
        type: ‘POST‘,
        data: formData,
        processData: false,
        contentType: false,
        headers: {
            "author-token-key": localStorage.getItem(‘token‘)
        },
        success: function(rsp) {
            // console.log(‘rsp‘,rsp)
            imgs = $.parseJSON(rsp).url; //json 转对象
            // console.log(‘imgs‘,imgs)
            var innerHtml = ‘<div class="photo-add" onmouseover ="IconShow(this)" onmouseout ="IconHide(this)">‘ +
                ‘<img src="‘ + imgs + ‘" alt = "添加照片" class="photoShow" onclick="viewBigPhoto(this)"/>‘ +
                ‘<div class="closeIcon">‘ +
                ‘<span class="delPhoto-btn" onclick="delPhoto(this)">‘ + "X" +
                ‘</span>‘ +
                ‘</div>‘ +
                ‘</div>‘;
            $(".photo-box").before(innerHtml);
            attachmentArr.push(imgs);
            //避免不能重复提交同一张图片
            e.target.value = ‘‘;
        },
        error: function(e) {
            layer.msg(‘上传失败,请重新上传‘)
            console.log("网络错误!");
        }
    };
    $.ajax(options);
};

//删除图标显隐
function IconShow(e) {
    $(e).children(‘.closeIcon‘).show();
};

function IconHide(e) {
    $(e).children(‘.closeIcon‘).hide();
};

//编辑时照片显示
function editPhotoShow(obj) {
    // console.log(‘obj‘,obj)
    if (obj) {
        imgs = obj.split(‘;‘); //分割一下下
    };
    var innerHtml = ‘‘;
    for (var i = 0; i < imgs.length; i++) {
        innerHtml += ‘<div class="photo-add" onmouseover ="IconShow(this)" onmouseout ="IconHide(this)">‘ +
            ‘<img style = "width: 100%;" src=‘ + imgs[i] + ‘ alt = "添加照片" class="photoShow" onclick="viewBigPhoto(this)"/>‘ +
            ‘<div class="closeIcon">‘ +
            ‘<span class="delPhoto-btn" onclick="delPhoto(this)">‘ + "X" +
            ‘</span>‘ +
            ‘</div>‘ +
            ‘</div>‘;
    };
    //获取编辑图片值
    attachmentArr = [];
    attachmentArr = imgs;
    $(".photo-box").before(innerHtml);
};
//图片删除
function delPhoto(e) {
    var thisImage = $(e).parent().parent().find(‘img‘).attr("src");
    attachmentArr.remove(thisImage);
    $(e).parent().parent().remove();
};
/*
 *图片放大预览
 */
function viewBigPhoto(e) {
    var imgSrc = $(e).attr(‘src‘);
    $(‘#PhotoBigBox‘).modal(‘show‘);
    $(‘.photoViewDiv img‘).attr(‘src‘, imgSrc);
};

原文地址:https://www.cnblogs.com/Byme/p/11286905.html

时间: 2024-10-04 17:10:15

jquery input file 多图上传,单张删除,查看的相关文章

html input file标签的上传文件 注意点

文件上传框  代码格式:<input type=“file” name=“...” size=“15” input enctype="multipart/form-data“ maxlength=“100”> 属性解释: 属性解释: type=“file”定义文件上传框: name属性定义文件上传框的名称,要保证数据的准确采 集,必须定义一个独一无二的名称: size属性定义文件上传框的宽度,单位是单个字符宽度: maxlength属性定义最多输入的字符数. 注意: 要使得文件上载能

IE input file隐藏不能上传文件解决方法

当大神们都在探讨更深层次的问题时,我还在这里转载发些肤浅的问题解决方案.罢了,为了和我一样笨的后来人. 问题: 上传文件时,用<input type="file" />标签,但是默认的file标签很难看,而且每个浏览器下都有很大差距. 1.一般解决办法: 我们基本都把真正的file标签给隐藏,然后创建一个标签来替代它,比如我们创建一个a标签来替代它,隐藏file标签,单击a标签时触发file标签click弹出选择文件窗口,选择文件之后,触发file的change事件提交.

input file 美化及上传本地预览

效果: /*input file 美化及上传本地预览,兼容IE6-8,FIrefox, Chrome(需在服务端,本地无效)*/<!DOCTYPE html><html><head>    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    <title>input file 美化</title>    &

Springmvc file多附件上传 显示 删除操作

之前项目需求要做一个多附件上传 并显示上传文件 带删除操作 一筹莫展之际搜到某个兄弟发的博客感觉非常好用被我copy下来了此贴算是改良版 再次感谢(忘记叫什么了时间也有点久没有历史记录了)先上图 基于springmvc附件上传 所需jar包 commons.fileupload-1.2.0.jar commons.io-1.4.0.jar 这个是我使用的jar包有需要的可以直接百度网盘下载 里面有好几个版本 自行选择 放在lib下面 使用的话maven 直接下载也可以 链接:https://pa

bootstrap file input 实现多图上传功能

官方文档   http://plugins.krajee.com/ demo      http://plugins.krajee.com/file-input-ajax-demo/3 github资源   https://github.com/kartik-v/bootstrap-fileinput html   <input id="input-700" name="kartik-input-700[]" type="file" mul

.NET File 多图上传

HTML代码: <div> <div> <input type="file" style="display:none" id="files" multiple="multiple" accept="image/*"/> <input type="button" value="点击上传" id="btnfile&quo

动态input file多文件上传到后台没反应的解决方法!!!

其实我也不太清除具体是什么原因,但是后面就可以了!!! 我用的是springMVC 自带的文件上传 1.首先肯定是要有springMVC上传文件的相关配置! 2.前端 这是动态input file上传到后台没反应的写法(页面上写死的上传到后台是可以的) 这段代码是写在table>>下的form表单里的 <input type="button" name="button" value="添加附件" onclick="ad

input file实现批量上传

1.需求实现word批量上传. 2.使用插件jquery-form.js 3.html代码 注意 multiple="multiple" 1 <form id="frm_upload" method="post" enctype="multipart/form-data"> 2 <input type="file" id="filepath" multiple=&quo

vue 使用input file点击上传本地图片

<input type="file" @change="upData($event)" ref="InputFile" name="files" /> upData(event) { var reader = new FileReader(); let fileData = this.$refs.InputFile.files[0]; reader.readAsDataURL(fileData); let _thi