如何完成上传图片到腾讯云

这个是官方文档里面的属性, 

upload(params){

console.log(params)

}

下面是参数打印出来的结果: 

 将图片上传到腾讯云:

1.安装依赖:npm i cos-js-sdk-v5 --save

2. 在你的组件中加入如下代码:实例化cos代码

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

3.实现头像上传的整段代码,

https://cloud.tencent.com/document/product/436/35649#.E7.AE.80.E5.8D.95.E4.B8.8A.E4.BC.A0.E5.AF.B9.E8.B1.A1 这个是腾讯云文档链接

<template>
  <el-upload
    class="avatar-uploader"
    action="#"
用来指定文件要上传的地址,由于我们需要定制上传动作(我们要上传到腾讯云cos),这里设为#
    :show-file-list="false"
    :on-success="handleAvatarSuccess"
    :http-request="upload"
  >
    <img v-if="imageUrl" :src="imageUrl" class="avatar">
    <i v-else class="el-icon-plus avatar-uploader-icon" />
  </el-upload>
</template>
<script>
// 下面的代码是固定写法
const COS = require('cos-js-sdk-v5')
// 填写自己腾讯云cos中的key和id (密钥)
const cos = new COS({
  SecretId: 'xxxxxxxxxxxx', // 身份识别ID
  SecretKey: 'xxxxxxxxxxxxxxxxxxxxxxx' // 身份秘钥
})
export default {
  name: 'Upload',
  data() {
    return {
      imageUrl: ''
    }
  },
  methods: {
    handleAvatarSuccess(res, file) {
      this.imageUrl = URL.createObjectURL(file.raw)
    },
    // 头像上传
    upload(params) {
    //   console.log(params)
      if (params.file) {
        cos.putObject({
          Bucket: '123-1306404211', /* 存储桶 */
          Region: 'ap-nanjing', /* 存储桶所在地域,必须字段 */
          Key: params.file.name, /* 文件名 */
          StorageClass: 'STANDARD', // 上传模式, 标准模式
          Body: params.file // 上传文件对象
        }, (err, data) => {
          console.log(err || data)
          if (data.statusCode === 200) {
            this.imageUrl = `https:${data.Location}`  //写到这,图片已经可以看到啦
          }
        })
      }
    }
  }
}
</script>

添加上传进度条,腾讯云文档上有这个,onPregress上传文件的进度回调函数,回调参数为进度对象 progressData

 

这个是progressData的打印结果: 

 

注意:上面代码this的指向会出问题,是undefined,写成箭头函数就没错了!

onProgress: (progressData) => {
            console.log(this) 
            this.percentage = progressData.percent * 100  //这句是给上传加个进度条
            console.log(JSON.stringify(progressData))
          }

4. 来说下v-model:

<com v-model="imageUrl" />

上面的写法等价于:
<com :value="imageUrl" @input="val=>imageUrl=val" />

在项目中使用 :

1.父组件中:

2.子组件中:

 

 最后补充一个知识:

注册全局组件:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值