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"
    }
  });
};
相关推荐
Irene19911 分钟前
FileList 对象总结(附:不支持迭代的类数组对象表)
javascript·类数组对象·filelist·不支持迭代
谢尔登23 分钟前
【CSS】样式隔离
前端·css
百***812724 分钟前
【SpringBoot】SpringBoot中分页插件(PageHelper)的使用
java·spring boot·后端
百***864625 分钟前
SpringBoot中自定义Starter
java·spring boot·后端
q***071425 分钟前
VScode 开发 Springboot 程序
java·spring boot·后端
q***465226 分钟前
Spring中使用Async进行异步功能开发实战-以大文件上传为例
java·后端·spring
q***385128 分钟前
SpringCloud实战【九】 SpringCloud服务间调用
java·spring boot·spring cloud
岚天start28 分钟前
K8S环境中Containerd运行时占用文件定位清理
java·rpc·kubernetes
2501_9167665433 分钟前
解决idea依赖导入不成功的问题
java·intellij-idea
头发还在的女程序员36 分钟前
基于JAVA语言的短剧小程序-抖音短剧小程序
java·开发语言·小程序