formData原生实现图片上传

举报
lxw1844912514 发表于 2022/03/27 02:10:38 2022/03/27
【摘要】 //修改头像--开始//let btn = document.querySelector('#avatarImage')let file = document.querySelector('#newuploadAvatar') btn.onclick = function() { file.click() // 调取系统选择图片的...

  
  1. //修改头像--开始//
  2. let btn = document.querySelector('#avatarImage')
  3. let file = document.querySelector('#newuploadAvatar')
  4. btn.onclick = function() {
  5. file.click() // 调取系统选择图片的弹框
  6. }
  7. // 监听input的file变化值
  8. file.onchange = function (event) {
  9. let file = event.target.files[0]
  10. upload(file)
  11. }
  12. function upload(file) {
  13. let xhr = new XMLHttpRequest()
  14. xhr.open('post', 'updateavatar', true)
  15. let formData = new FormData()
  16. formData.set('filename', file)
  17. xhr.send(formData)
  18. xhr.onreadystatechange = function() {
  19. if (xhr.readyState === 4 && xhr.status === 200) {
  20. console.log('success')
  21. }
  22. }
  23. }
  24. //修改头像--结束//

html部分:


  
  1. <div class="avatar__edit">
  2. <img id="avatarPreloader" src="__IMG__/preload.svg">
  3. <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12">
  4. <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"
  5. fill="#383E45" fill-rule="evenodd"/>
  6. </svg>
  7. <!-- <label for="newuploadAvatar">-->
  8. <img id="avatarImage" src="{$user.headimg|default='__IMG__/avatarImage.png'}" width="110" height="110">
  9. <!-- </label>-->
  10. </div>
  11. <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

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/102960121

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。