首页 > 其他分享 >vue上传图片

vue上传图片

时间:2023-03-20 18:12:17浏览次数:49  
标签:vue 上传 formData file res fileData data 图片

<div class="row-center">
                    <div class="Default-avatar cur active" @click="setAvater">
                        <img :src="userInfo.avatar || require('./image/Default-avatar.png')" alt="">
                    </div>
                    <input type="file" id="file" v-show="false" />
</div>
setAvater() {
            var file = document.getElementById('file');
            file.click()
            const _this = this
            file.onchange = async function (e) {
                var fileData = e.target.files[0];//获取到一个FileList对象中的第一个文件(File 对象),是我们上传的文件
                var pettern = /^image/;
                console.log(fileData)

                if (!pettern.test(fileData.type)) {
                    _this.$tool.message('图片格式不正确','error')
                    return;
                }
                let formData = new FormData()
                formData.append("file", fileData)
                const res = await axios.post('/api/user/avatar', formData, {
                    // 因为我们上传了图片,因此需要单独执行请求头的Content-Type
                    headers: {
                        // 表示上传的是文件,而不是普通的表单数据
                        'Content-Type': 'multipart/form-data'
                    }
                })
                if(res.data.code === 0){
                    _this.userInfo.avatar = res.data.data
                    _this.setUserInfo({val: _this.userInfo})
                    _this.$tool.message('头像以上传','success')
                }
            }
        }

  

标签:vue,上传,formData,file,res,fileData,data,图片
From: https://www.cnblogs.com/tlfe/p/17237230.html

相关文章

  • vue-json-viewer 展示json数据
    main.jsimportJsonViewerfrom'vue-json-viewer'Vue.use(JsonViewer);vue<el-dialogtitle="退款数据详情":visible.sync="dialogvisible2"v-if="dialogvisible......
  • vue的从0到1搭建 p3
    参考文档:https://blog.csdn.net/bai_shuang/article/details/122984811参考文档:https://blog.csdn.net/weixin_55662333/article/details/1207585834、使用less依赖1)安装l......
  • Vue.js TodoList案例pubsub
    视频MyItem.vueApp.vue修改componentsMyFooter.vue<template> <divclass="todo-footer"v-show="total"> <label> <!--<inputtype="checkbox":checked="i......
  • Vue 项目打包 部署 运行
    Vue项目打包部署运行 1、安装vuenpminstallvue 查看vue版本vue-V 2、安装cnpmnpminstall-gcnpm-registry=https://registry.npm.taobao.o......
  • Vue.js 消息订阅与发布
    视频npmipubsub-js该技术在vue中被事件总线完全替代componentsSchool.vue<template> <divclass="school"> <h2>学校名称:{{name}}</h2> <h2>学校地址:{{add......
  • B/S 超大文件上传解决方案:分片断点上传(一)
    ​ 前言文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好......
  • canvas 中使用跨域的图片
    一张跨域的图片直接在canvas中使用控制台是会给出警告的:Error:SecurityError:Failedtoexecute'toDataURL'on'HTMLCanvasElement':Taintedcanvasesmaynotbeex......
  • vue的从0到1搭建 p2
    2、父子组件1)在components目录下新建sub文件夹,用于存放一下可以复用的子组件。比如新建一个Confirm.vue组件  (2)在父组件中引入子组件引入:importConfirmfro......
  • WebUploader 超大文件上传解决方案:分片断点上传(一)
    ​ 对于大文件的处理,无论是用户端还是服务端,如果一次性进行读取发送、接收都是不可取,很容易导致内存问题。所以对于大文件上传,采用切块分段上传,从上传的效率来看,利用多......
  • 图片转pdf
    引用iTextSharpdllitextsharp.dll(版本5.5.13.3)、Spire.Pdf.dll(版本9.2.6.0)///<summary>///图片转pdf///</summary>///<paramname......