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 分钟前
Vue 项目实战《尚医通》,预约挂号的路由与静态搭建,笔记36
javascript·vue.js·笔记
码上成长5 分钟前
React 18 并发特性:useTransition 和 useDeferredValue 动画级解释
javascript·react.js·ecmascript
百***416611 分钟前
Java MySQL 连接
java·mysql·adb
Jayden16 分钟前
synchronized全解析:从锁升级到性能优化,彻底掌握Java内置锁
java·synchronized·synchronized面试·synchronized扫盲
J***Q29222 分钟前
前端CSS架构模式,BEM与ITCSS
前端·css
任子菲阳40 分钟前
学Java第四十五天——斗地主小游戏创作
java·开发语言·windows
G***T6911 小时前
React性能优化实战,避免不必要的重渲染
前端·javascript·react.js
q***d1731 小时前
前端微前端部署方案,Nginx与Webpack
前端·nginx·webpack
czhc11400756631 小时前
Java1112 基类 c#vscode使用 程序结构
android·java·数据库
嫂子的姐夫1 小时前
23-MD5+DES+Webpack:考试宝
java·爬虫·python·webpack·node.js·逆向