图片上传----七牛上传

<template>
  <div class="img-upload-wrap">
    <!-- 文件上传 -->
    <el-upload
      class="upload-demo"
      ref="upload"
      action=""
      :http-request="selfUpload"
      :show-file-list="false"
      accept="image/*">
      <el-button size="small" type="primary" v-if="options" @click="$emit('uploadBtnClick')">{{options.title}}</el-button>
    </el-upload>
  </div>
</template>
<script>
import Uploader from '@/server/qiniu/index';
export default {
  name: 'pictureUpload',
  props: {
    config: {
      type: Object
    }
  },
  data(){
    return{
       options: {
         title: '上传图片',
         errorMsg: 'KB',
         size:0,
         url: '',
         name:"",
       },
        fileReader: '',
    }
  },
  watch: {
    config: {
      handler (val) {
        this.options = Object.assign(this.options,val)
      },
      immediate: true
    }
  },
  mounted(){
      this.fileReader = new FileReader()
  },
  methods:{
    selfUpload(data) {
      let self = this;
      console.log(1111,data)
      if(!data) return false
      if (data.file.size / 1024 / 1024 > 5) {
        this.$message.error(`上传文件最大不能超过5M`)
        return false
      }
        if (data.file) {
            this.fileReader.readAsDataURL(data.file)
        }
        this.fileReader.onload = () => {
            let base64Str = this.fileReader.result
            new Uploader({
                file: base64Str,
                fileName: data.file.name,
                quality: this.options.quality || 0.9,
                onError(err) {
                  self.$message.error(err)
                  $print.log(err)
                },
                onProgress(res) {
                  const percent = res.total.percent;
                  self.progress = parseInt(percent, 10);
                },
                onSuccess(res) {
                  self.options.url = res.url
                  self.options.name = data.file.name
                  self.options.size = data.file.size /1000 + "KB"
                  self.$emit('upSuccess', self.options)
                  self.$refs.upload.value = ''
                }
            })
        }

    }
  }
}
</script>
<style lang="less" scoped>
.img-upload-wrap{
  display: block;
  margin-right: 10px;
}
</style>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值