<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:;
opacity:;
} .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:;
margin: 6px;
overflow: hidden;
} .photo-add img {
width: 100%;
height: 100%;
background-size: contain;
} .photo-add .closeIcon {
position: absolute;
top:;
background: #000;
opacity: 0.6;
height: 20px;
width: 100%;
display: none;
} .photo-add .closeIcon .delPhoto-btn {
position: absolute;
right:;
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);
};

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

  1. 项目总结21:项目总结21:input实现多图上传(FormData)(上传OSS并保存数据库)

    项目总结21:input实现多图上传(FormData)(上传OSS并保存数据库) 备注:本案例,作为Demo,包含少量的项目业务逻辑,input多图上传的逻辑是完整的: 不废话直接上代码 1-前端标 ...

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

    文件上传框  代码格式:<input type=“file” name=“...” size=“15” input enctype="multipart/form-data“ maxl ...

  3. input file标签限制上传文件类型

    用 input 的file类型标签上传文件,有时需要限制上传文件类型,添加accept属性可以实现 <input type="file" accept="image ...

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

    之前项目需求要做一个多附件上传 并显示上传文件 带删除操作 一筹莫展之际搜到某个兄弟发的博客感觉非常好用被我copy下来了此贴算是改良版 再次感谢(忘记叫什么了时间也有点久没有历史记录了)先上图 基于 ...

  5. layui多图上传实现删除功能

    在使用layui的多图上传时发现没有删除功能 在网上搜索解决办法时有的感觉太复杂有的不符合自己所需要的所以就自己动手 下面附上代码 HTML: <div class="layui-up ...

  6. .NET File 多图上传

    HTML代码: <div> <div> <input type="file" style="display:none" id=&q ...

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

    当大神们都在探讨更深层次的问题时,我还在这里转载发些肤浅的问题解决方案.罢了,为了和我一样笨的后来人. 问题: 上传文件时,用<input type="file" /> ...

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

    其实我也不太清除具体是什么原因,但是后面就可以了!!! 我用的是springMVC 自带的文件上传 1.首先肯定是要有springMVC上传文件的相关配置! 2.前端 这是动态input file上传 ...

  9. input file 多张图片上传 获取地址 ——fileReader

    //上传图片 $('#files').change(function(e){ var fil = this.files; var m =0; if(fil.length>3){ alert('重 ...

随机推荐

  1. Flutter Drawer 侧边栏、以及侧边栏内 容布局

    Flutter Drawer 侧边栏 在 Scaffold 组件里面传入 drawer 参数可以定义左侧边栏,传入 endDrawer 可以定义右侧边 栏.侧边栏默认是隐藏的,我们可以通过手指滑动显示 ...

  2. 三、HTTP响应

    HTTP消息是服务器和客户端之间交换数据的方式 有两种类型的消息: 请求--由客户端发送用来触发一个服务器上的动作 相应--来自服务器的应答 一.HTTP响应的构成 1.状态行 HTTP响应的起始行被 ...

  3. Spring 中使用了哪些设计模式?

    好了,话不多说,开始今天的内容.spring中常用的设计模式达到九种,我们举例说明. 1.简单工厂模式 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式 ...

  4. CNN中计算量FLOPs的计算

    1.FLOPs的概念:全称是floating point operations per second,意指每秒浮点运算次数,即用来衡量硬件的计算性能:在CNN中用来指浮点运算次数: 2.计算过程: 如 ...

  5. [ kvm ] 学习笔记 3:KVM 基础功能详解

    1. 构建 KVM 环境 KVM 从诞生开始就需要硬件虚拟化的支持,KVM 必需的硬件虚拟化扩展分别是:Intel 的虚拟化技术(Intel VT)和 AMD 的 AMD-V 技术.首先处理器(CPU ...

  6. 对 Watchbog Botnet 渗透过程和 Payload 的分析

    漏洞利用 CVE-2018-1000861 https://jenkins.io/security/advisory/2018-12-05/ Watchbog在做什么? Watchbog僵尸网络为其所 ...

  7. SpringBoot学习笔记:Redis缓存

    SpringBoot学习笔记:Redis缓存 关于Redis Redis是一个使用ANSI C语言编写的免费开源.支持网络.可基于内存亦可以持久化的日志型.键值数据库.其支持多种存储类型,包括Stri ...

  8. linux系统实现多个进程监听同一个端口

    通过 fork 创建子进程的方式可以实现父子进程监听相同的端口. 方法:在绑定端口号(bind函数)之后,监听端口号之前(listen函数),用fork()函数生成子进程,这样子进程就可以克隆父进程, ...

  9. python 多线程模板简单实现

    #-*- encoding: UTF-8 -*- #编码声明 import threading,Queue,os import time #导入方法模块 def main(inargs): work_ ...

  10. CentOS 6 新装服务器部署流程

    1.设置时区 rm -f /etc/localtime cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 2.配置内网IP (如果是外网IP,li ...