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)
上一篇 2021年11月10日 上午7:00
下一篇 2021年11月10日 上午7:00


相关推荐

  • 如何用BingAI搜索最新资讯_BingAI联网搜索功能使用教程

    如何用BingAI搜索最新资讯_BingAI联网搜索功能使用教程

    2026年3月12日
    2
  • 2022保密教育线上培训考试 01[通俗易懂]

    2022保密教育线上培训考试 01[通俗易懂]试题1单选题1.机关、单位应当严格按照经过批准的范围对外提供涉密资料,并与外方签订(),限定涉密资料的使用和知悉范围。正确答案:B.保密协议2.按照公职人员政务处分法有关规定,有()行为造成不良后果或者影响的,予以警告、记过或者记大过;情节较重的,予以降级或者撤职;情节严重的,予以开除。正确答案:D.以上都正确3.下列关于涉密载体销毁的说法错误的是()。正确答案:B.涉密载体销毁的登记、审批记录无须保存4.保密期限是对国家秘密采取保密措施的时间要求。保密期限包括的形式有()。正

    2022年10月1日
    4
  • 数学图形(1.5)克莱线

    数学图形(1.5)克莱线克莱线(Cayley’sSextic)是极坐标方程为:y=4a(cosΘ/3)^3的六次曲线,其中a是一个实数。相关软件参见:数学图形可视化工具,使用自己定义语法的脚本代码生成数学图形.该软件免费开源.QQ交流群:367752815克莱线看上去与心形线类似.呵呵,我想说的是,它更像个多了屁眼的屁股。vertices=1000r=10.0t=from(…

    2025年11月5日
    4
  • pycharm 激活码 2021_最新在线免费激活

    (pycharm 激活码 2021)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html83PVI25FMO-eyJsaWNlbnNlSW…

    2022年3月27日
    44
  • Midjourney国内怎么使用?(最新使用详细教程)

    Midjourney国内怎么使用?(最新使用详细教程)

    2026年3月15日
    2
  • C++ CString转int int转CString「建议收藏」

    1.CString转int    CStringstrtemp="100";  int intResult;  intResult=atoi(strtemp);  —————————————————————–   2int转CString     CStringstr…

    2022年4月6日
    244

发表回复

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

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