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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 288÷4×7解决什么问题_java has not been found

    288÷4×7解决什么问题_java has not been found前言:今天连接zookeepter的时候出现问题(上午连接的时候还没问题的,下午就出现了问题,很是无奈)报错信息如下:java.net.ConnectException:Connectiontimedout:nofurtherinformation atsun.nio.ch.SocketChannelImpl.checkConnect(NativeMethod) ats…

    2022年9月18日
    5
  • 在 Python 中的常见的几种字符串替换操作

    在 Python 中的常见的几种字符串替换操作基于Python3.7.3中,主要的方法有替换子串:replace()替换多个不同的字符串:re.sub(),re.subn()用正则表达式替换:re.sub(),re.subn()根据位置来替换:slice()replace()方法比如,输入的字符串为’onetwoonetwoone’,第一个参数为替换前的参数,第二个为替换后的参数。默认会替换字符串中的所有符合条件的字…

    2022年6月3日
    41
  • Dreamweaver2021中文版 附安装教程

    Dreamweaver2021中文版 附安装教程当我们访问网站的时候看到的每一个页面都是前端程序员开发的,如果没有一款好的软件则会让开发效率大大降低,那么有没有一款高效的前端开发软件呢?推荐大家使用Dreamweaver2021,这是adobe旗下的一款非常受欢迎的网页设计软件,是该系列的全新版本,可以帮助广大学生、程序员制作出精美的网页,比如简洁的百度首页,复杂的淘宝页面,你都可以通过它让你游刃有余的制作出来。该软件可以帮助用户了解以及编辑HTML、CSS、Web、xml、json,各种前端语言都支持编码输入,还支持快捷键快速输入一大段代码,减少你重复

    2022年6月4日
    40
  • 《JavaScript 模式》读书笔记(3)— 字面量和构造函数3

    这是字面量和构造函数的最后一篇内容,其中包括了JSON、正则表达式字面量,基本值类型包装器等知识点。也是十分重要的哦。五、JSONJSON是指JavaScript对象表示以及数据传输格式。它是一种

    2022年3月25日
    35
  • 老电脑换Linux系统是否会更快,旧电脑不要装Windows!Bodhi Linux系统,小巧强悍,运行更流畅…

    老电脑换Linux系统是否会更快,旧电脑不要装Windows!Bodhi Linux系统,小巧强悍,运行更流畅…你的旧电脑安装win10还好吗?现在科技发展越来越快,尤其是电脑硬件的更新换代,然而大多数的人都不会因为新产品出来,就将自己才用了两三年的电脑换掉。但是,电脑用久了,终究会变慢,尤其是在Windows系统功能越来愈多,越来越大的情况下,我们还是需要换电脑!不过,你的旧电脑怎么办?卖掉?它的价格分分钟还不如废铁。扔掉?又不太舍得。真是如鸡肋一般,食之无味,弃之可惜!很多人都不知道的是,其实即使是5年…

    2022年6月4日
    107
  • 物联网架构及五大通信协议是什么_物联网不能实现哪种通信方式

    物联网架构及五大通信协议是什么_物联网不能实现哪种通信方式消息触达能力是物联网(internetofthings,IOT)的重要支撑,而物联网很多技术都源于移动互联网。柳猫将阐述移动互联网消息推送技术在物联网中的应用和演进。一、物联网架构和关键技术从开发的角度,无线接入是物联网设备端的核心技术,身份设备管理和消息推送技术是物联网云端的核心技术。而从场景体验的角度,除了前者,还要包括手机的前端开发技术。IP互联架构已是物联网的事实标准(有关物联网TCP/IP层关键技术将另文阐述,敬请关注)。本文所讲的消息推送技术是基于TCP/I…

    2022年9月18日
    2

发表回复

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

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