转至 :https://blog.csdn.net/qq_37610423/article/details/84319410

效果图:

我在用这个的时候发现博主少写了一些东西,导致功能无法实现,所以我改了一些东西直接复制就可以了

Html代码:

<div class="file-box clearboth" id="fileBox">
<label class="clone-dom" style="display:none;">
<input type="file" class="file-btn" name="img[]"/>
</label>
<div class="review-box"></div>
<label><input type="file" class="file-btn clone-dom" name="img[]"/>
</label>
</div>

  

js代码:

记得引用Jquery文件!!!!!

<script type="text/javascript">

  //一定要记得加这个

  $(document).ready(function(){

    

    //获取文件url
    function createObjectURL(blob){
    if (window.URL){
      return window.URL.createObjectURL(blob);
    } else if (window.webkitURL){
      return window.webkitURL.createObjectURL(blob);
    } else {
      return null;
    }
  }   var box = $("#fileBox .review-box"); //显示图片box
  var file = $("#file"); //file对象
  var domFragment = document.createDocumentFragment(); //文档流优化多次改动dom   $("#fileBox").on("click", ".file-btn",function(){
  var index = $(this).parent().index();
  if(index == 6){
    alert("最多可以上传4张图片!");
    return false;
  }
});
  //触发选中文件事件
  $("#fileBox").on("change", ".file-btn", function(event){
    var imgNum = parseInt($("#fileBox .review-box img").length);
    if(imgNum < 4){
      var file = event.target.files; //获取选中的文件对象
      var imgTag = $("<img src=''/>");
      var fileName = file[0].name; //获取当前文件的文件名
      var url = createObjectURL(file[0]); //获取当前文件对象的URL
      //忽略大小写
      var jpg = (fileName.indexOf(".jpg") > -1) || (fileName.toLowerCase().indexOf(".jpg") > -1);
      var png = (fileName.indexOf(".png") > -1) || (fileName.toLowerCase().indexOf(".png") > -1);
      var jpeg = (fileName.indexOf(".jpeg") > -1) || (fileName.toLowerCase().indexOf(".jpeg") > -1);
      var jpeg = (fileName.indexOf(".gif") > -1) || (fileName.toLowerCase().indexOf(".gif") > -1);
      var jpeg = (fileName.indexOf(".bmp") > -1) || (fileName.toLowerCase().indexOf(".bmp") > -1);
      //判断文件是否是图片类型
      if(jpg || png || jpeg || gif || bmp){
        imgTag.attr("src",url);
      }else{
        alert("请选择合适的图片类型文件!");
      }       //最佳显示
      var imgbox = $("<div class='prev-item'><span class='closebtn'>×</span></div>");
      imgbox.append(imgTag);
      box.append(imgbox);
      event.target.parentNode.style.display = "none";
      var cloneDom = $(".clone-dom").eq(0).clone().removeAttr("style");
      $("#fileBox").append(cloneDom);
  }
});     $(".review-box").on("click", ".prev-item", function(){
      var index = $(this).index();
      $(this).remove();
      $("#fileBox label:eq(" + (index + 1) + ")").remove();
    }); }); </script>

  

CSS代码:

#fileBox{
margin:/*1*/rem 0;
}
#fileBox label{
border: 1px solid #ccc;
display:block;
float:left;
height:60px;
width:60px;
background:url(../img/images/images/xiang1_06.png) no-repeat center;
background-size: .19rem;
background-color: #ccc;
margin-left: .17rem; }
#fileBox .file-btn{
height:50px;
width:50px;
margin:0 .5rem .5rem 0;opacity:0;
}
#fileBox .review-box{
display:block;
float:left;
margin-left: .17rem;
}
#fileBox .review-box img{
height:60px;
width:60px;
margin:0 .1rem .2rem 0;
}
#fileBox .prev-item{
position:relative;display:inline-block;
}
#fileBox .prev-item .closebtn{
position:absolute;
right: -1px;
top: -4px;
display: block;
height: 14px;
width: 14px;
color: #fff;
font-size: 16px;
line-height:14px;
text-align: center;
background: red;
border-radius: 10px;
}
#fileBox .prev-item .closebtn {
position: absolute;
right: 7px;
top: -4px;
display: block;
height: 14px;
width: 14px;
color: #fff;
font-size: 16px;
line-height: 14px;
text-align: center;
background: #8E8E93;
border-radius: 10px;
}

  

H5移动端实现图片上传的更多相关文章

  1. H5拍照、选择图片上传组件核心

    背景 前段时间项目重构,改成SSR的项目,但之前用的图片选择上传组件不支持SSR(server-side-render).遂进行了调研,发现很多的工具.但有的太大,有的使用麻烦,有的不满足使用需求.决 ...

  2. H5 利用vue实现图片上传功能。

    H5的上传图片如何实现呢? 以下是我用vue实现的图片上传功能,仅供参考. <!DOCTYPE html> <html> <head> <meta chars ...

  3. [javascript]——移动端 HTML5 图片上传预览和压缩

    在开发移动端web网页中,我们不可避免的会遇到文件上传的功能,但由于手机图片尺寸太大,上传时间过长导致用户体验太差,就需要在上传前对图片进行一定的压缩. 在代码之前,有必要先了解我们即将使用到的几个A ...

  4. 用html5文件api实现移动端图片上传&预览效果

    想要用h5在移动端实现图片上传&预览效果,首先要了解html5的文件api相关知识(所有api只列举本功能所需): 1.Blob对象  Blob表示原始二进制数据,Html5的file对象就继 ...

  5. html图片上传阅览并且点击放大

                  关闭   qq_31540195的博客       目录视图 摘要视图 订阅 异步赠书:9月重磅新书升级,本本经典           程序员9月书讯      每周荐书: ...

  6. 移动端H5实现图片上传

    移动端H5实现图片上传 https://segmentfault.com/a/1190000010034177

  7. h5移动端实现图片文件上传

    PC端上传文件多半用插件,引入flash都没关系,但是移动端要是还用各种冗余的插件估计得被喷死,项目里面需要做图片上传的功能,既然H5已经有相关的接口且兼容性良好,当然优先考虑用H5来实现. JS代码 ...

  8. js移动端/H5同时选择多张图片上传并使用canvas压缩图片

    最近在做一个H5的项目,里边涉及到拍照上传图片的功能以及识别图片的功能,这里对识别图片的功能不做赘述,不属本文范畴.我在做完并上线项目后,同事跟我提了一个要求是可不可以同时选择多张图片上传,我做的时候 ...

  9. vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理

    一.前言 三年.net开发转前端已经四个月了,前端主要用webpack+vue,由于后端转过来的,前端不够系统,希望分享下开发心得与园友一起学习. 图片的上传之前都是用的插件(ajaxupload), ...

随机推荐

  1. openstack核心组件——horizon Web管理界面(10)

    一.horizon 介绍: 理解 horizon Horizon 为 Openstack 提供一个 WEB 前端的管理界面 (UI 服务 )通过 Horizone 所提供的 DashBoard 服务 ...

  2. Node.js 从零开发 web server博客项目[日志]

    web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...

  3. java虚拟机5 字节码

    java字节码本质是java程序的格式化表示,便于机器处理.所以他是java程序的另一种表示,java程序包含的信息他都包含并且更加结构化. java虚拟机字节码格式: magic 魔数,标识该文件是 ...

  4. 刷题[SUCTF 2018]GetShell

    解题思路 进入upload,发现有源码,代码审计 代码审计 大概意思就是,读取我们上传的文件,截取第五位之后的内容,与黑名单不匹配才能上传成功 我传的是一个空的txt文件,发现会变成php文件,那好办 ...

  5. get 跟post的区别

    get参数通过url传递,post放在request body中 :get请求在url中传递的参数是有长度限制的,而post没有.

  6. 阿里内部推出Spring响应式微服务Boot2Cloud文档

    今天要给大家推荐的是Spring响应式微服务SpringBoot2+Spring5+SpringCloud实战的内容,将从目录.主要内容和面向的读者三部分给大家介绍,希望大家能够喜欢!!!(本文整理自 ...

  7. 什么是 Opcache,如何使用 Opcache

    Opcode 是啥? 我们先看一下 PHP 的执行过程: PHP 初始化执行环节,启动 Zend 引擎,加载注册的扩展模块. 初始化后读取 PHP 脚本文件,Zend 引擎对 PHP 文件进行词法分析 ...

  8. UnityShader学习笔记- Stencil Buffer

    模板测试(Stencil Test)是现代渲染流水线的一环,其中涉及到的就是模板缓冲(Stencil Buffer),模板缓冲可以用来制作物体的遮罩.轮廓描边.阴影.遮挡显示等等效果 目录 Stenc ...

  9. 创建Maven项目中的几个问题

    一.用eclipse创建maven的web项目,需手动添加WEB-INF文件夹及其web.xml配置文件 二.设置编译版本1.8 在pom.xml中设置 1 <build> 2 <! ...

  10. pytorch和tensorflow的爱恨情仇之定义可训练的参数

    pytorch和tensorflow的爱恨情仇之基本数据类型 pytorch和tensorflow的爱恨情仇之张量 pytorch版本:1.6.0 tensorflow版本:1.15.0 之前我们就已 ...