element-plus 上传组件 el-upload 直传第一次取不到数据

取不到数据是官方("element-plus": "^2.3.4") beforeData在beforeUploadPromise 之前导致异步设置:data 不生效文件传不上去的原因,改为http-request去处理就可以了。挺奇怪,之前用("element-plus": "^2.2.17")是没有问题的。

在before-upload里请求后端接口获取到accessid、policy、signature、dir等。

在http-request里

javascript 复制代码
const httpRequest: UploadRequestHandler = async (options: UploadRequestOptions) => {
  console.log(options);
  let formdata = new FormData();
  formdata.append("ossaccessKeyId", dataOss.value.ossaccessKeyId);
  formdata.append("policy", dataOss.value.policy);
  formdata.append("signature", dataOss.value.signature);
  formdata.append("host", dataOss.value.host);
  formdata.append("key", dataOss.value.key);
  formdata.append("success_action_status", "200");
  formdata.append("file", options.file);
  uploadFileToOSS(formdata, options.action).then(res => {
    console.log(res);
    if (res.status == 200) {
      options.onSuccess(res);
    } else {
      ElMessage({ message: "上传失败", type: "error", showClose: true });
    }
  });
};


const uploadFileToOSS = (data: any, action: string) => {
  return axios({
    url: action,
    method: "POST",
    data: data,
    headers: {
      "Content-Type": "multipart/form-data"
    }
  });
};
相关推荐
程序员榴莲2 分钟前
Java(十)super关键字
java·开发语言
HAPPY酷7 分钟前
Python高级架构师之路——从原理到实战
java·python·算法
ybwycx34 分钟前
SpringBoot下获取resources目录下文件的常用方法
java·spring boot·后端
PrDf22Iw836 分钟前
CPU ↔ DRAM(内存总线)的可持续数据传输带宽
java·运维·网络
AIBox36537 分钟前
openclaw api 配置排查与接入指南:网关启动、配置文件和模型接入全流程
javascript·人工智能·gpt
代码改善世界42 分钟前
【matlab初阶】matlab入门知识
android·java·matlab
precious。。。44 分钟前
1.2.1 三角不等式演示
前端·javascript·html
java1234_小锋1 小时前
Java高频面试题:如何编写一个MyBatis插件?
java·开发语言·mybatis
卓怡学长1 小时前
m315基于java的水果网上商城的开发与设计
java·数据库·spring·tomcat·maven·intellij-idea
阿珊和她的猫1 小时前
TypeScript 中的 `extends` 条件类型:定义与应用
javascript·typescript·状态模式