上传图片(最多可以上传5张图片)demo效果示例(整理)

简介: 上传图片(最多可以上传5张图片)demo效果示例(整理)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>上传图片(最多可以上传5张图片)</title>
<style>
* {margin:0;padding:0;}
.up-section .type-upimg {display:none;}
::-ms-clear,::-ms-reveal {display:none;}
textarea {outline:none;line-height:14px;padding-left:4px;padding-top:4px;border:1px solid #ccc;color:#444;font-size:14px;outline:none;text-align:left;}
.overflow {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
button {outline:none;border:0px;}
input {outline:none;}
a {outline:none;}
a,button {cursor:pointer;}
body {background:#f4f4f4;font-size:14px;}
.clear {clear:both;}
.full {width:1210px;min-width:1210px;margin:0 auto;}
.full-big {width:1340px;min-width:1340px;margin:0 auto;}
.img-full {display:block;width:100%;}
::-webkit-input-placeholder {color:#777;font-size:14px;}
:-moz-placeholder {/* Firefox 18- */color:#777;font-size:14px;}
::-moz-placeholder {/* Firefox 19+ */color:#777;font-size:14px;}
:-ms-input-placeholder {color:#777;font-size:14px;}
/* ====clear float====== *//*nav a:visited {color:rgb(65,65,65);}
aside a:visited {color:rgb(65,65,65);}
*/.fl {float:left;}
.fr {float:right;}
.clear:after {content:'';display:block;clear:both;}
/* reset */.pic img {display:none;}
em {font-style:normal}
li {list-style:none}
a {text-decoration:none;}
img {border:none;}
table {border-collapse:collapse;}
/*上传图片插件的样式*/.img-box {margin-top:40px;}
.img-box .up-p {margin-bottom:20px;font-size:16px;color:#555;}
.z_photo {padding:18px;border:2px dashed #E7E6E6;}
.z_photo .z_file {position:relative;}
.z_file  .file {width:100%;height:100%;opacity:0;position:absolute;top:0px;left:0px;z-index:100;}
.z_photo .up-section {position:relative;margin-right:20px;margin-bottom:20px;}
.up-section .close-upimg {position:absolute;top:6px;right:8px;display:none;z-index:10;}
.up-section .up-span {display:block;width:100%;height:100%;visibility:hidden;position:absolute;top:0px;left:0px;z-index:9;background:rgba(0,0,0,.5);}
.up-section:hover {border:2px solid #f15134;}
.up-section:hover .close-upimg {display:block;}
.up-section:hover .up-span {visibility:visible;}
.z_photo .up-img {display:block;width:100%;height:100%;}
.loading {border:1px solid #D1D1D1;background:url(https://cs.m.xczhihui.com/xcview/images/shop/loading.gif) no-repeat center;}
.up-opcity {opacity:0;}
.img-name-p {display:none;}
.upimg-div .up-section {width:190px;height:180px;}
.img-box .upimg-div .z_file {width:190px;height:180px;}
.z_file .add-img {display:block;width:190px;height:180px;}
/*遮罩层样式*/.mask {z-index:1000;display:none;position:fixed;top:0px;left:0px;width:100%;height:100%;background:rgba(0,0,0,.4);}
.mask .mask-content {width:500px;position:absolute;top:50%;left:50%;margin-left:-250px;margin-top:-80px;background:white;height:160px;text-align:center;}
.mask .mask-content .del-p {color:#555;height:94px;line-height:94px;font-size:18px;border-bottom:1px solid #D1D1D1;}
.mask-content .check-p {height:66px;line-height:66px;position:absolute;bottom:0px;left:0px;width:100%;}
.mask-content .check-p span {width:49%;display:inline-block;text-align:center;color:#d4361d;font-size:18px;}
.check-p .del-com {border-right:1px solid #D1D1D1;}
</style>
</head>
<body>
<div class="img-box full">
  <section class=" img-section">
    <p class="up-p"><span class="up-span">上传图片(最多可以上传5张图片)</span></p>
    <div class="z_photo upimg-div clear">
      <section class="z_file fl">
        <img src="https://cs.m.xczhihui.com/xcview/images/shop/uploading.png" class="add-img">
        <input type="file" name="file" id="file" class="file" value="" accept="image/jpg,image/jpeg,image/png,image/bmp" multiple="">
      </section>
    </div>
   </section>
</div>
<aside class="mask works-mask">
  <div class="mask-content">
    <p class="del-p ">您确定要删除图片吗?</p>
    <p class="check-p"><span class="del-com wsdel-ok">确定</span><span class="wsdel-no">取消</span></p>
  </div>
</aside>
</body>
</html>
<script src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<script>
  $(function(){
    var delParent;
    var defaults = {
      fileType: ["jpg","png","bmp","jpeg"],   // 上传文件的类型
      fileSize: 1024 * 1024 * 1                  // 上传文件的大小 10M
    };
      /*点击图片的文本框*/
    $(".file").change(function(){  
      var idFile = $(this).attr("id");
      var file = document.getElementById(idFile);
      var imgContainer = $(this).parents(".z_photo"); //存放图片的父亲元素
      var fileList = file.files; //获取的图片文件
      var input = $(this).parent();//文本框的父亲元素
      var imgArr = [];
      //遍历得到的图片文件
      var numUp = imgContainer.find(".up-section").length;
      var totalNum = numUp + fileList.length;  //总的数量
      if(fileList.length > 5 || totalNum > 5 ){
        alert("上传图片数目不可以超过5个,请重新选择");  //一次选择上传超过5个 或者是已经上传和这次上传的到的总数也不可以超过5个
      }
      else if(numUp < 5){
        fileList = validateUp(fileList);
        for(var i = 0;i<fileList.length;i++){
         var imgUrl = window.URL.createObjectURL(fileList[i]);
             imgArr.push(imgUrl);
         var $section = $("<section class='up-section fl loading'>");
             imgContainer.prepend($section);
         var $span = $("<span class='up-span'>");
             $span.appendTo($section);
           var $img0 = $("<img class='close-upimg'>").on("click",function(event){
              event.preventDefault();
            event.stopPropagation();
            $(".works-mask").show();
            delParent = $(this).parent();
          });   
          $img0.attr("src","https://cs.m.xczhihui.com/xcview/images/shop/close.png").appendTo($section);
           var $img = $("<img class='up-img up-opcity'>");
               $img.attr("src",imgArr[i]);
               $img.appendTo($section);
           var $p = $("<p class='img-name-p'>");
               $p.html(fileList[i].name).appendTo($section);
           var $input = $("<input id='taglocation' name='taglocation' value='' type='hidden'>");
               $input.appendTo($section);
           var $input2 = $("<input id='tags' name='tags' value='' type='hidden'/>");
               $input2.appendTo($section);
         }
      }
      setTimeout(function(){
               $(".up-section").removeClass("loading");
         $(".up-img").removeClass("up-opcity");
       },450);
       numUp = imgContainer.find(".up-section").length;
      if(numUp >= 5){
        $(this).parent().hide();
      }
    });
      $(".z_photo").delegate(".close-upimg","click",function(){
          $(".works-mask").show();
          delParent = $(this).parent();
    });
    $(".wsdel-ok").click(function(){
      $(".works-mask").hide();
      var numUp = delParent.siblings().length;
      if(numUp < 6){
        delParent.parent().find(".z_file").show();
      }
       delParent.remove();
    });
    $(".wsdel-no").click(function(){
      $(".works-mask").hide();
    });
      function validateUp(files){
        var arrFiles = [];//替换的文件数组
        for(var i = 0, file; file = files[i]; i++){
          //获取文件上传的后缀名
          var newStr = file.name.split("").reverse().join("");
          if(newStr.split(".")[0] != null){
              var type = newStr.split(".")[0].split("").reverse().join("");
              console.log(type+"===type===");
              if(jQuery.inArray(type, defaults.fileType) > -1){
                // 类型符合,可以上传
                if (file.size >= defaults.fileSize) {
                  alert(file.size);
                  alert('您这个"'+ file.name +'"文件大小过大');  
                } else {
                  // 在这里需要判断当前所有文件中
                  arrFiles.push(file);  
                }
              }else{
                alert('您这个"'+ file.name +'"上传类型不符合'); 
              }
            }else{
              alert('您这个"'+ file.name +'"没有类型, 无法识别');  
            }
        }
        return arrFiles;
      }
  });
</script>

相关文章
|
6月前
|
存储 对象存储 C++
图片上传(为写博客而单独发布的文章,存储以后可能用得到的图片)
图片上传(为写博客而单独发布的文章,存储以后可能用得到的图片)
|
3月前
在线将多张图片拼接起来图工具HTML源码
在线将多张图片拼接成一张图片,多图合一并导出下载。无需本地安装软件。 下载时,使用日期时间作为文件名,规避图片文件名相同造成的覆盖问题;也能省去一部覆盖确认操作 多语言支持
44 0
在线将多张图片拼接起来图工具HTML源码
|
3月前
|
Web App开发 Linux Windows
解决Markdown文件上传至CSDN无法显示本地图片问题-白嫖版,分享给别人的md文件图片不显示的解决方案
解决Markdown文件上传至CSDN无法显示本地图片问题-白嫖版,分享给别人的md文件图片不显示的解决方案
|
6月前
|
前端开发 Java
在springboot项目中实现将上传的jpg图片类型转为pdf并保存到本地
使用uniapp的uni.canvasToTempFilePath方法,将canvas内容转为jpg并上传至服务器。后端接收到jpg文件后,通过Java的PDFBox库进行处理。代码包括:选取画板内容为jpg,转换为临时文件路径,基于此路径生成File对象并上传,服务器端利用PDFBox处理上传的jpg文件。依赖:PDFBox 2.0.8。
73 3
uniapp上传多张图片-带删除按钮查看大图效果demo(整理)
uniapp上传多张图片-带删除按钮查看大图效果demo(整理)
|
存储 JavaScript 前端开发
Java实现图片的上传和显示
Java实现图片的上传和显示
493 0
|
移动开发 HTML5
HTML5 图片上传预览(调用摄像头、文件)demo效果示例(整理)
HTML5 图片上传预览(调用摄像头、文件)demo效果示例(整理)
|
JavaScript
jquery上传头像demo效果示例(整理)
jquery上传头像demo效果示例(整理)