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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • android的timertask,Android 中 Timer 和 TimerTask的使用「建议收藏」

    Android中Timer是一个普通的类,其中有几个重要的方法;而TimerTask则是一个抽象类,其中含有一个抽象方法run()。使用Timer类中的schedule()方法可以完成对TimerTask的调度,该方法具有三个参数,其函数声明如下:publicvoidschedule(TimerTasktask,longdelay,longperiod)其中第一个参数为TimerTa…

  • 智能小区管理系统_php导航网源码

    智能小区管理系统_php导航网源码☞文末有福利哟,请关注小枣获取方案智慧小区智慧物业管理系统一体化解决方案传统物业在管理上不仅成本高,服务质量也很难有所保障。现在很多小区都安装了智能物业管理系统,它将信息手段与现代物业管理工作相结合,帮助物业管理团队及时响应客户需求,降低运营成本,提升服务品质。智慧物业是指充分利用物联网、云计算、移动互联网等新一代信息技术的集成应用,将物业各个单位紧密连接起来,实现数据的融合,建立起高效…

  • 免费开源网站源码_内容网站源码

    免费开源网站源码_内容网站源码前言最近想着搭建一个API测试平台,基础的注册登录功能已经完成,就差测试框架的选型,最后还是选择了httprunner,github上已经有很多开源的httprunner测试平台,但是看了下都是基于

  • 针不戳,数据库性能优化八大方案。[通俗易懂]

    针不戳,数据库性能优化八大方案。[通俗易懂]毫不夸张的说咱们后端工程师,无论在哪家公司,呆在哪个团队,做哪个系统,遇到的第一个让人头疼的问题绝对是数据库性能问题。如果我们有一套成熟的方法论,能让大家快速、准确的去选择出合适的优化方案,我相信能够快速准备解决咱么日常遇到的80%甚至90%的性能问题。从解决问题的角度出发,我们得先了解到问题的原因;其次我们得有一套思考、判断问题的流程方式,让我们合理的站在哪个层面选择方案;数据库的优化方案核心本质有三种减少数据量、用空间换性能、选择合适的存储系统。这也对应了开篇讲解的慢的三个原因https。…

  • 随机梯度下降算法原理 知乎_梯度下降算法的正确步骤

    随机梯度下降算法原理 知乎_梯度下降算法的正确步骤目录1.算法目标2.算法描述3.算法推导4.注意1.算法目标逐渐逼近损失函数loss的极小值,简单抽象为求函数的极小值。2.算法描述每次取一个增量,使得,每次向函数值更小的地方前进一小步,多次迭代就能做到逐渐逼近函数的极小值。3.算法推导展开得到公式。其中H为海森矩阵,暂且不考虑。为使成立,只需要保证。即,当时,,如此即可保证每次更新在逐渐逼近函数的极小值。其中为学习率是一个较小的正数。每次更新时做操作,求得的最小值。4.注意上..

  • java构造函数

    java构造函数

发表回复

您的电子邮箱地址不会被公开。

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