• 基于element ui 实现七牛云自定义key上传文件,并监听更新上传进度


    借助上传Upload 上传组件的 http-request 覆盖默认的上传行为,可以自定义上传的实现

          <el-upload
                multiple
                ref="sliderUpload"
                :data="uploadData"
                :action="uploadData.url"
                list-type="picture-card"
                accept="image/png,image/jpeg,image/jpg"
                :auto-upload="true"
                :limit="numberLimit.slider"
                :file-list="sliderList"
                :http-request="sliderRequest"
                :before-upload="beforeUpload"
                :on-remove="sliderRemove"
                :on-preview="picturePreview"
                :on-error="uploadError"
                :on-exceed="uploadLimit">
                <i class="el-icon-plus"></i>
                <div class="el-upload__tip" slot="tip">限上传9张轮播图</div>
              </el-upload>
      
    sliderRequest(upload) {
          // 文件上传自行处理上传
          // 创建FormData对象 添加相关上传参数
          const formData = new FormData()
          // 文件对象
          formData.append('file', upload.file)
          // key 文件名处理 images/时间戳_随机字符串.文件后缀
          formData.append('key', `images/${new Date().getTime()}_${randomString()}.${upload.file.name.substring(upload.file.name.lastIndexOf('.') + 1)}`)
          // token
          formData.append('token', this.uploadData.token)
    
          // 上传文件
          // onUploadProgress 查看axios文档 https://github.com/axios/axios
          axios.post(this.uploadData.url, formData, {
            onUploadProgress: (event) => {
              // 监听上传进度
              event.percent = event.loaded / event.total * 100
              upload.onProgress(event)
            }
          }).then((response) => {
            const res = response.data
            if (res.code === 200) {
              // 调用组件上传成功方法
              upload.onSuccess()
              // 轮播图上传成功 这里做相关逻辑this.$message.success('上传成功')
            }
          }).catch((err) => {
            // 调用组件上传失败方法
            upload.onError()
            this.$message.error('上传失败,' + err)
          })
        }
     
  • 相关阅读:
    Linux的僵尸进程及其解决方法
    描述linux系统从开机到登陆界面的启动过程
    __weak、__strong这样的关键词和weak、strong有哪些区别
    选择器(UIPickerView)
    UITableView 滚动流程性优化
    几种设置UITableView的cell动态高度的方法
    强大的Core Image(教你做自己的美图秀秀))
    iOS UIBezierPath类 介绍
    Quartz 2D编程指南- PDF文档的创建、显示及转换
    Quartz 2D编程指南(4) - 颜色和颜色空间
  • 原文地址:https://www.cnblogs.com/lanshengzhong/p/10308114.html
Copyright © 2020-2023  润新知