Vue 上传图片文件到OSS

371 阅读1分钟
  async ossSign (list) {
  //因为有可能有多张图片或者文件所以是数组 
      // 上传oss
      const res = await this.$axios.post("获取oss签名的接口", ossConfig);
      const promiseArr = [];
      for (let i = 0; i < list.length; i++) {
        const fileName = list[i].name;
        const formatFile = formatUploadFile(list[i], res.data.data, fileName);
        const resp = this.$axios.post(res.data.data.host, formatFile, {
          headers: { 'Content-Type': 'multipart/form-data' },
          withCredentials: false
        });
        promiseArr.push(resp);
      }
      try {
        const fileList = await Promise.all(promiseArr).then((arr) => {
          return list.map((item) => {
            return `${res.data.data.dir}/${item.name}`;
          });
        });
        return { fileList, uuid: res.data.data.dir.split('/')[1] };
      } catch (error) {
        this.$Message.error({
          content: '上传失败,请重新上传'
        });
      }
    },