1. 需要有自己的云仓库


如何配置自己的云仓库: 请点击

2.复制element-ui (Upload) 上传

在这里插入图片描述
在这里插入图片描述
把代码复制下来做以修改
在这里插入图片描述

需要配置自定义上传

关键属性::http-request=“upload” action="#"

使用自定义行为覆盖默认上传,注意一旦设置自定义上传行为之后,所有的上传操作都需要自己实现,比如数据处理,上传成功之后的后续操作,on-success钩子函数也不会继续触发

<template>
  <div>
    <!--
      show-file-list: 是否显示上传的文件列表

      action: '#' 用来指定文件要上传的地址,由于我们需要定制上传动作
             这里设为#
      :http-request:自定义上传行为(重点)

      on-success: 上传成功之后的回调
      before-upload: 上传之前的检查
      :on-success="handleAvatarSuccess"
    -->
    <el-upload
      class="avatar-uploader"
      action="#"
      :show-file-list="false"
      :before-upload="beforeAvatarUpload"
      :http-request="upload"
    >
      <img v-if="imageUrl" :src="imageUrl" class="avatar">
      <i v-else class="el-icon-plus avatar-uploader-icon" />
    </el-upload>
  </div>
</template>
<script>
  export default {
      methods:{
         upload(params){
             console.log(params) // 请求的数据
         }
      }
  }
</script>

在这里插入图片描述

配置 云平台交互

1.安装依赖

npm i cos-js-sdk-v5 --save

2.实例化cos对象(可以写在import 同级)

// 下面的代码是固定写法
const COS = require('cos-js-sdk-v5')
// 填写自己腾讯云cos中的key和id (密钥)
const cos = new COS({
  SecretId: 'xxx', // 身份识别ID
  SecretKey: 'xxx' // 身份秘钥
})

在这里插入图片描述


3.使用cos对象完成上传

upload(res) {
  if (res.file) {
    // 执行上传操作
    cos.putObject({
      Bucket: 'xxxxxx', /* 存储桶 */
      Region: 'xxxx', /* 存储桶所在地域,必须字段 */
      Key: res.file.name, /* 文件名 */
      StorageClass: 'STANDARD', // 上传模式, 标准模式
      Body: res.file // 上传文件对象
    }, (err, data) => {
      console.log(err || data)
      // 上传成功之后
      if (data.statusCode === 200) {
       console.log(data)
      }
    })
  }
}

在这里插入图片描述

上边的BucketRegion在这里可以找到
在这里插入图片描述


在上传时,cos支持配置**`onProgress`**回调,在这个回调函数中可以拿到当前上传的进度。
cos.putObject({
      // 省略其他...
      onProgress: (progressData) => {
        console.log(JSON.stringify(progressData))
      }
    }
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐