js实现图片上传到服务器和回显

js实现图片上传到服务器和回显

关于js实现图片的上传和回显,曾经用户的代码粘在这里:

样式:这样写样式的道理是给<input>标签的父级设置一个背景图,就是‘+’那个背景图,然后把<input>的宽高设置得跟父级一样,且完全透明(注意是透明不是隐藏),这样点击的时候看似是点击的‘+’的节点,其实点击的是<input>节点。

    .file-box {
   
                position: relative;
                display: inline-block;
                width:100px;
                height:100px;
                background:url('images/uploadPc.png')no-repeat;
                background-size:100px 100px;
            }
            #input_file{
   
                width:100%;
                height:100%;
                opacity: 0;
                filter:alpha(opacity=0);
            }

input标签:

<div class="file-box">
           <input type="file" value="" name="file" id = "input_file"
              accept="image/gif,image/jpeg,image/jpg,image/png,image/svg" οnchange="imgPreview(this,0)" >
    </div>

实现imgPreview()方法: 这个方法是给$(“#input_file”)这个对象设置图片的值并回显图片

  

 function imgPreview(fileDom,i) {
            //判断是否支持FileReader
            if(window.FileReader) {
                var reader = new FileReader();
            } else {
                alert("您的设备不支持图片预览功能,如需该功能请升级您的设备!");
            }
            //获取文件
            var file = fileDom.files[0];
            var imageType = /^image\//;
            //是否是图片
            if(!imageType.test(file.type)) {
                alert("请选择图片!");
                return;
            }
            //读取完成
            reader.onload = function(e) {
                //图片路径设置为读取的图片
                // img.src = e.target.result;
                console.log(document.getElementsByClassName('file-box'));
                document.getElementsByClassName('file-box')[i].style.background = "url("+e.target.result+")no-repeat";//回显图片
                document.getElementsByClassName('file-box')[i].style.backgroundSize = '200px 160px';
                console.log('reader',reader)
            };
            reader.readAsDataURL(file);
        }

上传部分的代码:

   var formData = new FormData();
    formData.append('photo', $('#input_file')[0].files[0]);
    //ajax请求
    $.ajax({
                type: "post",
                url:  "接口地址",
                data: formdata,
                dataType: 'json',
                processData: false, // 告诉jQuery不要去处理发送的数据
                contentType: false, // 告诉jQuery不要去设置Content-Type请求头
                xhrFields:{withCredentials:true},
                async: true,    //默认是true:异步,false:同步。
                success: function (data) {
                    callback(data);
                },
                error: function (data) {
                    layer.msg('请求异常');
                },
            });

最终实现效果:
js实现图片上传到服务器和回显

 

原文:https://blog.csdn.net/lijia_1983370657/article/details/80489979

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112315.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CSS3选择器介绍及用法总结[通俗易懂]

    CSS3选择器介绍及用法总结[通俗易懂]CSS3新增了很多强大的选择器它可以让我们少写一些js事件脚本我们先来看看各个版本的选择器有哪些注:ele代表element元素attr代表attribute属性,val代表value属性值:xxx都属于伪类选择器,::xxx都属于伪元素选择器有名字的选择器我尽量细分了CCS1选择器选择器类型示例说明.class类选择器.demo

    2022年7月11日
  • Header和Cookie相关内容

    Header和Cookie相关内容

    2021年10月26日
  • Vue电商后台管理系统功能展示

    Vue电商后台管理系统功能展示项目技术:html、css、javascript、node.js、vue、mysql项目描述:电商后台管理系统,主要功能包括:用户账号管理、商品分类、商品信息、订单、数据统计等业务功能。采用前后端分离的开发模式,其中前端项目是基于Vue技术栈的SPA项目,通过API接口连接服务器,访问mysql数据库。成品效果展示:一、登陆界面二、登陆校验规则三、登陆成功后,保存Token四、用户管理页面五、添加用户功能(采用正则表达式进行校验)六、添加用户成功,弹出消息框.

    2022年5月5日
  • Ubuntu下安装yum和配置yum源

    Ubuntu下安装yum和配置yum源1、简介Yum(全称为YellowdogUpdater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装2、安装yum2.1检测是否安装build-essential包sudoapt-getinstallbuild-essential或者apt-getinstallbuil.

    2022年6月20日
  • socket中的connect提示报错:errno = “EINPROGRESS“

    socket中的connect提示报错:errno = “EINPROGRESS“socketconnectioctlsocketerror.h#defineEINPROGRESS115/*Operationnowinprogress*/

    2022年7月16日
  • mybatis date转string_mybatis字符串转日期

    mybatis date转string_mybatis字符串转日期mybatismysql时间字符串转date(查询)andcreate_time<=str_to_date(#{createTime},’%Y-%m-%d%H:%i:%s’)andDATE_FORMAT(create_time,’%Y-%m-%d%H:%i:%s’)>=DATE_FORMAT(#{queryStartTime},’%Y-%m-%d%H:%i:%s’)andcreate_time>=DATE_FORMAT(#{queryStart

    2022年9月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号