formData原生实现图片上传

formData原生实现图片上传

大家好,又见面了,我是全栈君。

//修改头像--开始//
let btn = document.querySelector('#avatarImage')
let file = document.querySelector('#newuploadAvatar')

btn.onclick = function() {
    file.click() // 调取系统选择图片的弹框
}

// 监听input的file变化值
file.onchange = function (event) {
    let file = event.target.files[0]
    upload(file)
}

function upload(file) {
    let xhr = new XMLHttpRequest()
    xhr.open('post', 'updateavatar', true)
    let formData = new FormData()
    formData.set('filename', file)
    xhr.send(formData)
    xhr.onreadystatechange = function() {
        if (xhr.readyState === 4 && xhr.status === 200) {
            console.log('success')
        }
    }
}
//修改头像--结束//

html部分:

 <div class="avatar__edit">
                                            <img id="avatarPreloader" src="__IMG__/preload.svg">
                                            <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12">
                                                <path d="M0 9.002v2.368h2.368l6.986-6.985-2.37-2.37zm11.185-6.45a.63.63 0 0 0 0-.891L9.707.185a.63.63 0 0 0-.891 0L7.66 1.34l2.37 2.37 1.156-1.156z"
                                                      fill="#383E45" fill-rule="evenodd"/>
                                            </svg>
<!--                                            <label for="newuploadAvatar">-->
                                            <img id="avatarImage" src="{$user.headimg|default='__IMG__/avatarImage.png'}" width="110"  height="110">
<!--                                            </label>-->
                                        </div>
                                        <input type="file" id="newuploadAvatar"    style="opacity: 0;" accept="image/png, image/jpeg, image/gif, image/jpg" data-max-size="2048" >

参考:https://juejin.im/post/5aa01068f265da23970669ce

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

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

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


相关推荐

  • 通俗易懂–岭回归(L2)、lasso回归(L1)、ElasticNet讲解(算法+案例)

    通俗易懂–岭回归(L2)、lasso回归(L1)、ElasticNet讲解(算法+案例)

    2021年6月20日
    138
  • Centos7下安装与卸载Jdk1.8

    Centos7下安装与卸载Jdk1.8卸载查看已经安装的jdk[root@bogonjre]#rpm-qa|grepjdkjava-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_

    2022年6月25日
    27
  • android之R cannot be resolved to a variable

    刚才又遇到了R cannot be resolved to a variable的问题,就翻了翻网上的资料,调理的整理了一下1. 检查Android 的SDK是否丢失需要重新下载,检查build path,把需要导入的JAR包确认都导入成功2. 确保class没有import Android.R,注意是不能有Android.R,可以有其他R文件,比如你自己的包;3. 错误cla

    2022年3月9日
    58
  • Minicom使用介绍

    Minicom使用介绍minicom是一个串口通信工具,就像Windows下的超级终端。可用来与串口设备通信,如调试交换机和Modem等。一、Minicoms使用1.安装minicom打开终端sudoapt-getinstallminicom即可完成安装。2.minicom配置参数命令运行sudominicom-s进入了minicom的配置界面:使用上下键选择Serialports…

    2022年6月6日
    46
  • pip 离线安装包方法_pip安装包下载

    pip 离线安装包方法_pip安装包下载环境:pip19.0.3windows7x64pip下载第三方包举个栗子:pip离线安装举个栗子:本文介绍的是最简单直接的用法,用于快速解决工作时的问题。更多复杂高深用法学习见pip

    2022年8月4日
    29
  • idea Mac 破解2021激活码[免费获取]

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

    2022年3月21日
    84

发表回复

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

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