iview 中 upload 组件如何oss上传

需要先调取一个api获取到需要上传的数据和上传的api地址 不知道我这么写哪里错了 求解答...

<Upload 
              :action="uploadapi"
              ref="upload"
              :show-upload-list="true"
              :format="['img','bin']"
              accept=".img,.bin"
              :on-success="handleSuccess"
              :on-format-error="handleFormatError"
              :before-upload="handleBeforeUpload"
              :disabled="updisable"
              :data="uploadData"
              v-model="filename">
                  <Button icon="ios-cloud-upload-outline">请选择固件</Button>
              </Upload>
              
handleBeforeUpload(file){
      addFirmwareAction({model:this.firmwareform.productmodel}).then(res=>{
        console.log(res)
        if(res.data){
          let obj = res.data;
          this.uploadapi = location.protocol+"//"+ obj['host'].split("://")[1];
          this.uploadData = {
            "name":file.name,
            "key":obj['dir'],
            "policy" : obj['policy'],
            "OSSAccessKeyId" : obj['accessid'],
            'success_action_status' : '200', //让服务端返回200,不然,默认会返回204
            "signature" : obj['signature'],
          }
          console.log(this.uploadapi,this.uploadData)
        }
      }).catch(err=>{
        console.log(err)
      })
      let promise = new Promise((resolve) => {
          this.$nextTick(function () {
              resolve(true);
          });
      });
      return promise; //通过返回一个promis对象解决
    },
阅读 2.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题