上传图片.

<template>
  <div>
    首页
    <el-upload action="#" list-type="picture-card" :file-list="fileList" :multiple="true" :on-preview="imgPreview"
      :on-remove="imgRemove" :http-request="upload">
      <!-- <el-upload action="#" list-type="picture-card" :file-list="fileList" :limit="1" :class="{ disabled: imgclass }"
      :multiple="true" :on-preview="imgPreview" :on-remove="imgRemove" :http-request="upload"> -->
      <el-icon>
        <Plus />
      </el-icon>
    </el-upload>
    <el-dialog title="图片预览" v-model="showDialog">
      <img width="100%" :src="imgUrl" alt="">
    </el-dialog>
  </div>
</template>
<script setup>
import { ref } from 'vue'
import { Plus } from '@element-plus/icons-vue'
import COS from 'cos-js-sdk-v5'
// 控制显示弹层
const showDialog = ref(false)
const fileList = ref([])
const imgUrl = ref('')
const imgclass = ref(false)
const cos = new COS({
  SecretId: 'AKI',
  SecretKey: 'CE6'
})
// 点击放大镜查看图片
const imgPreview = (file) => {
  imgUrl.value = file.url
  showDialog.value = true
}
// 删除图片
const imgRemove = (uploadFile, uploadFiles) => {
  imgclass.value = fileList.value.length >= 1
  fileList.value = uploadFiles
}
const upload = (params) => {
  console.log(params.file)
  // 进行上传操作
  if (params.file) {
    cos.putObject({
      Bucket: 'shooping-1316047121', // 存储桶的名字
      Region: 'ap-beijing', // 存储桶地域
      StorageClass: 'STANDARD', // 上传模式, 标准模式
      Key: params.file.name, // 上传到存储桶的文件名, 如果希望不重名, 可以对文件名进行处理
      Body: params.file // 上传文件对象
    }, (err, data) => {
      if (err) {
        return err
      } else {
        imgclass.value = true
        fileList.value.push({
          uid: params.file.uid,
          name: params.file.name,
          size: params.file.size,
          type: params.file.type,
          url: 'http://' + data.Location
        })
      }
    })
  }
}
</script>
<style scoped lang='less'>
.disabled {
  ::v-deep {
    .el-upload--picture-card {
      display: none;
    }
  }
}
</style>

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值