• Vue Element UI 图片上传


    Vue Element UI 图片上传

    ElementUI upload组件上传图片,多看看文档参数,基本没什么难度,我总结以下个人的需求。文档里面其实都有说明,我这边给出使用例子,方便他人。

    参照ElementUI官网: https://element.eleme.cn/#/zh-CN/component/upload#yong-hu-tou-xiang-shang-chuan

    • 上传权限验证 (需要heades里面加上token)
    • 预览上传图片(这个其实就很简单了, 我没仔细看文档)
      演示

    上传headers添加token

    由于我接口限制了headers token验证,所以上传得添加, 文档里面有说明一个 headers属性, 所以在计算属性添加

     <el-upload
    :headers="headers"
    >
    xxxx
     </el-upload>
      xxx
      computed:{
          headers() {
            // 上传图片添加请求头header
            return {
              'token': getToken() // 从本地获取token就行
            }
          }
    }
    

    上传回调处理

    首先我上传回调json数据是一下格式

    {
          "code": 200,
          "message": "success",
          "data": {
                "image": "xxxx"
          }
    }
    

    上传回调函数有两个默认参数, 第一个是请求响应,第二个是图片文件信息。

     <el-upload
    :on-success="handleAvatarSuccess"
    >
    xxxx
     </el-upload>
      xxx
     methods:{
          handleAvatarSuccess(res, file) {
           // 处理上传图标
            if (res.code === 200) {
              this.icon_url = res.data.image
            } else {
              this.$message.error(`图片上传失败:${res.message}`)
            }
          }
    }
    

    完整代码

    <template>
     <el-upload
              action="http://127.0.0.1:8010/api/mall/v1/admin/utils/upload/file/"    //上传的地址
              :headers="headers"    // 上传的请求头
              list-type="picture-card"    // 显示类型卡片
              :file-list="fileArr"    // 显示的图片
              :limit="1"    // 限制上传图片
              :on-success="handleAvatarSuccess"    // 回调请求处理
            >
             <i class="el-icon-plus"></i>
      <div slot="tip" class="el-upload__tip">限制上传一张, 只能上传jpg/png文件,且不超过500kb</div>
    </el-upload>
    </template>
    
    <script>
      import { getToken } from '@/utils/auth'
      export default {
        name: 'CategoryView',
        data() {
          return {
                icon_url: ""  // 默认url
          },
          computed:{
          headers() {
            // 上传图片添加请求头header
            return {
              'token': getToken() // 从本地获取token就行
            }
          },    
          fileArr() {
            // 上传图片 显示默认图片
            return this.form.icon_url ? [{ url: this.form.icon_url }] : []
            }
         },
          methods: {
               handleAvatarSuccess(res, file) {
                    if (res.code === 200) {
                           this.icon_url = res.data.image
                } else {
                   this.$message.error(`图片上传失败:${res.message}`)
                }
               }
          }
     }
    </script>
    

    在tab表格中的完整代码

    以上代码还不算特别完整,tab表格代码见个人博客

  • 相关阅读:
    Wwise音频解决方案概述
    图形学中的几何光学理论与视觉现象
    Visual Studio 2015 Tools for Unity使用基础
    C++编译器优化技术:RVO、NRVO和复制省略
    【ElasticSearch】 ElasticSearch基本概念和RESTful API(四)
    【ElasticStack】入门介绍(三)
    【Java】开发一个Java-SDK
    【Java】Maven 打包可运行jar包
    【SpringBoot】Spring Boot Admin 微服务应用监控
    【Java面试题】方法的参数传递机制
  • 原文地址:https://www.cnblogs.com/CharmCode/p/13377003.html
Copyright © 2020-2023  润新知