Day06-讲师头像上传前端-p93

使用element-ui组件实现

1、将头像上传前端组件源码复制到项目中

组件:
在这里插入图片描述

组件链接:https://pan.baidu.com/s/13I8rJkGF_bt7w_f3kwPZkQ
提取码:6wx8

将组件放到项目src/components下:
在这里插入图片描述

2、前端添加文件上传组件

2.1、前端表单代码

在这里插入图片描述

在这里插入图片描述

 <!-- 讲师头像 -->
      <el-form-item label="讲师头像">
          <!-- 头衔缩略图 -->
          <pan-thumb :image="teacher.avatar"/>
          <!-- 文件上传按钮 -->
          <el-button type="primary" icon="el-icon-upload" @click="imagecropperShow=true">
            更换头像
          </el-button>
          <!--
            v-show:是否显示上传组件
            :key:类似于id,如果一个页面多个图片上传控件,可以做区分
            :url:后台上传的url地址
            @close:关闭上传组件
            @crop-upload-success:上传成功后的回调 -->
          <image-cropper
                  v-show="imagecropperShow"
                   :width="300"
                   :height="300"
                   :key="imagecropperKey"
                   :url="BASE_API+'/eduoss/fileoss'"
                   field="file"
                   @close="close"
                   @crop-upload-success="cropSuccess"/>
      </el-form-item>

页面效果:
在这里插入图片描述

2.2、引入组件模块

在这里插入图片描述

import ImageCropper from '@/components/ImageCropper'
import PanThumb from '@/components/PanThumb'

  export default {
    components: { ImageCropper, PanThumb },
    data() {
      return {
        teacher: {
          name:'',
          sort:0,
          level:1,
          carrer:'',
          intro:'',
          avatar:''
        },

3、使用组件

*data()定义变量和初始值
在这里插入图片描述

		imagecropperShow:false,//上传弹框是否默认显示
        imagecropperKey:0,//上传罪案key值
        BASE_API:process.env.BASE_API,//获取dev.env.js里面的值
        saveBtnDisabled:false// 保存按钮是否禁用,

4、修改上传接口地址

在这里插入图片描述后端路径
在这里插入图片描述

5、编写close方法和上传成功的方法

在这里插入图片描述
在这里插入图片描述

close(){//关闭上传弹窗的方法
        this.imagecropperShow=false
      },
      //上传成功方法
      cropSuccess(data){
        this.imagecropperShow=false
        //上传之后接口返回图片地址
        this.teacher.avatar = data.url
      },

6、测试

阿里云oss上传成功:
在这里插入图片描述

数据成功保存到数据库:

在这里插入图片描述

7、小bug

当上传了头像,提交数据之前,想要换头像是换不成的,这是需要修改代码:

//上传组件初始化
this.imagecropperKey = this.imagecropperKey+1

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值