思路:
将照片转base64传后台
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>多张照片上传</title> <style type="text/css"> /*选择图片框样式*/ #div_imgfile { width: 130px; height: 75px; text-align: center; line-height: 75px; font-family: 微软雅黑; font-size: 16px; box-sizing: border-box; border: 2px solid #808080; cursor: pointer; } /*文本框input file隐藏*/ .imgfile { display: none; } /*图片预览容器样式*/ #div_imglook { margin-top: 20px; background-color: #FFEFD5; } /*单个图片预览模块样式*/ .lookimg { width: 130px; height: 130px; box-sizing: border-box; border: 1px solid #808080; float: left; margin-right: 10px; position: relative; } /*删除按钮样式*/ .lookimg_delBtn { position: absolute; bottom: 0px; left: 0px; width: 100%; height: 30px; text-align: center; line-height: 30px; background-color: #808080; opacity: 0.8; color: white; font-size: 16px; font-family: 微软雅黑; display: none; cursor: pointer; } /*上传进度条样式*/ .lookimg_progress { position: absolute; bottom: 15px; left: 0px; width: 100%; height: 20px; background-color: #e0e0e0; box-sizing: border-box; border: 1px solid black; display: none; text-align: center; line-height: 20px; font-size: 14px; } /*删除按钮移入移出效果*/ .lookimg_delBtn:hover { opacity: 1; } .lookimg img { width: 100%; height: 100%; } .lookimg_progress div { position: absolute; left: 0px; top: 0px; height: 100%; width: 0px; background-color: #e9cc2e; } </style> <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> <script type="text/javascript"> //照片大小限制1M var imgSize = 1; //照片数量限制3张 var imgCount = 3; //上传图片张数记录 var upImgCount = 0; $(function(){ //打开选择文本框,创建file文本框 $("#div_imgfile").click(function(){ //判断照片数量 if($(".lookimg").length >= imgCount){ alert("一次最多上传" + imgCount + "张图片"); return; } //创建一个input var carFile = document.createElement("input"); if ($(".imgfile").length <= $(".lookimg").length) { carFile.setAttribute("type", "file"); carFile.setAttribute("class", "imgfile"); carFile.setAttribute("accept", ".png,.jpg,.jpeg"); carFile.setAttribute("num", upImgCount); $("#div_imgfile").after(carFile); }else{ carFile = $(".imgfile").eq(0).get(0); } return $(carFile).click(); }); //绑定change事件,将照片回显页面 $(document).on("change", ".imgfile", function () { //判断是否有照片 if ($(this).val().length > 0) { //判断照片格式 var imgFormat = $(this).val().substr($(this).val().length - 3, 3); if (imgFormat != "png" && imgFormat != "jpg" && imgFormat != "peg") { alert("照片格式不正确!!!"); return; } //判断图片是否过大,当前设置1MB,获取file文件对象 var file = this.files[0]; if (file.size > (imgSize * 1024 * 1024)) { alert("图片大小不能超过" + imgSize + "MB"); $(this).val(""); return; } //创建预览外层 var preDiv = document.createElement("div"); preDiv.setAttribute("class", "lookimg"); //创建内层img对象 var preView = document.createElement("img"); $(preDiv).append(preView); //创建删除按钮 var imgDel = document.createElement("div"); imgDel.setAttribute("class", "lookimg_delBtn"); imgDel.innerHTML = "移除"; $(preDiv).append(imgDel); //创建进度条 var imgProgress = document.createElement("div"); imgProgress.setAttribute("class", "lookimg_progress"); $(imgProgress).append(document.createElement("div")); $(preDiv).append(imgProgress); //记录此对象对应编号 preDiv.setAttribute("num", $(this).attr("num")); //对象注入界面 $("#div_imglook").append(preDiv); //编号增长防重复 upImgCount++; //预览功能 start var reader = new FileReader();//创建读取对象 reader.onloadend = function () { preView.src = reader.result;//读取加载,将图片编码绑定到元素 } if (file) {//如果对象正确 reader.readAsDataURL(file);//获取图片编码 } else { preview.src = "";//返回空值 } //预览功能 end }else{ alert("请选择照片"); } }); //删除绑定click事件 $(document).on("click", ".lookimg_delBtn", function () { $(".imgfile[num=" + $(this).parent().attr("num") + "]").remove();//移除图片file $(this).parent().remove();//移除图片显示 }); //删除按钮绑定移入移出效果 $(document).on("mouseover", ".lookimg", function () { $(this).children(".lookimg_delBtn").eq(0).css("display", "block"); }); $(document).on("mouseout", ".lookimg", function () { $(this).children(".lookimg_delBtn").eq(0).css("display", "none"); }); }); //传后台 function submitForm(){ $(".lookimg > img").each(function(){ console.log($(this).attr("src")); }); } </script> </head> <body> <!-- 图片预览 --> <div id="div_imglook"> </div> <button id="div_imgfile">选择照片</button> </br> <button onclick="submitForm()">提交</button> </body> </html>
相关推荐
C2000,28335Matlab Simulink代码生成技术,处理器在环,里面有电力电子常用的GPIO,PWM,ADC,DMA,定时器中断等各种电力电子工程师常用的模块儿,只需要有想法剩下的全部自动代码生成, 电源建模仿真与控制原理 (1)数字电源的功率模块建模 (2)数字电源的环路补偿器建模 (3)数字电源的仿真和分析 (4)如何把数学控制方程变成硬件C代码; (重点你的想法如何实现)这是重点数字电源硬件资源、软件设计、上机实验调试 (1) DSP硬件资源; (2)DSP的CMD文件与数据的Q格式: (3) DSP的C程序设计; (4)数字电源的软件设计流程 (5)数字电源上机实验和调试(代码采用全中文注释)还有这个,下面来看看都有啥,有视频和对应资料(S代码,对应课件详细讲述传递函数推倒过程。
OpenArk64-1.3.8beta版-20250104,beta版解决Windows 11 23H2及以上进入内核模式,查看系统热键一片空白的情况
java面向对象程序设计实验报告
基于springboot的校园台球厅人员与设备管理系统--论文.zip
【创新无忧】基于matlab蜣螂算法DBO优化极限学习机KELM故障诊断【含Matlab源码 10720期】.zip
基于springboot的数码论坛系统设计与实现--论文.zip
基于springboot的生鲜超市管理的设计与实现.zip
内容概要:本文针对污水再生全流程中首端处理单元——AO除磷工艺展开了详尽研究。首先介绍了当前国内水资源现状以及传统污水处理面临的挑战。基于这些挑战,研究人员提出了将A/O除磷与厌氧氨氧化相结合的新思路,并详细讨论了如何通过调控运行参数(如好氧段DO浓度、污泥负荷率等)来提升TP和COD的去除效果。文章强调在不牺牲氨氮浓度的前提下实现了高效低成本的除磷及有机物去除。同时利用DGGE技术探究了系统内的微生物群落结构,验证氨氧化细菌和亚硝化细菌在短泥龄条件下被淘汰的情况。 适合人群:从事污水处理技术研究的专业人士或对生物处理工艺感兴趣的环保工程师、科研人员。 使用场景及目标:①为改善传统污水处理工艺中存在的同步脱氮除磷难题提供解决方案;②探讨A/O除磷单元与其他处理单元组合时的设计考量和性能评估方法。 其他说明:本研究不仅有助于深入了解AO工艺背后的科学原理和技术难点,也为后续自养脱氮环节准备了合适的进水条件,促进了整个城市污水处理链条的技术进步和发展方向探索。
返岗证明模板.docx
arcgis矢量shp格式白城市地图
航天新征程航天发展历程介绍弘扬载人航天精神ppt
Yufeng-lidar
资源描述: HTML5实现好看的律师法律服务网站模板,好看的律师法律服务网站模板源码,律师法律服务网站模板,HTML律师法律服务网站模板源码,内置酷炫的动画,界面干净整洁,页面主题,全方位介绍内容,可以拆分多个想要的页面,可以扩展自己想要的,注释完整,代码规范,各种风格都有,代码上手简单,代码独立,可以直接运行使用。也可直接预览效果。 资源使用: 点击 index.html 直接查看效果
【创新无忧】基于matlab哈里斯鹰算法HHO优化极限学习机KELM故障诊断【含Matlab源码 10697期】.zip
【C#】基于C#的消息队列服务产品中间件
【创新无忧】基于matlab布谷鸟算法CS优化极限学习机KELM故障诊断【含Matlab源码 10691期】.zip
直连设备(单片机)端token自动计算(micropython)
基于springboot的书籍学习平台--论文.zip
档案材料归档移交目录表.docx
这是我自己写的一款PDF文档转Word工具。 没有联网,没有后台,格式转换在本地电脑上进行,保证数据安全。 转换有4种模式可以设置,尽可能的保证转换成功,保留原来的格式。