You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用OneDrive API按ID替换文件内容后生成空文件问题咨询

问题排查点
    1. axios传参字段使用错误
      axios 发送请求时,携带请求体的参数为data而非body,你当前代码中填写的body字段不会被axios识别发送,导致实际请求没有携带文件内容,最终上传的文件为空,这是最核心的原因。
    1. 二进制内容处理错误
      你将req.file.buffer先执行toString()再转可读流的操作会破坏二进制文件的编码结构,尤其是图片、PDF这类非文本文件,转字符串会导致内容不可逆损坏。不需要额外做toString处理,直接传入Buffer或者原生可读流即可。
    1. Content-Type不匹配
      你当前配置的Content-Type为application/pdf,但你提到req.file.buffer是图片类型的buffer,类型不匹配也可能导致接口处理内容异常,需要改成和上传文件对应的MIME类型。
修正后的代码示例
const { data } = await axios({
  method: "put",
  url: `https://graph.microsoft.com/v1.0/me/drive/items/${fileId}/content`,
  headers: {
    Authorization: "bearer " + req.user.auth.accessToken,
    "Content-Type": req.file.mimetype, // 直接读取上传文件的原生MIME类型,避免手动配置错误
  },
  responseType: "json",
  data: req.file.buffer, // 直接传入buffer即可,无需额外转流
});
补充说明

如果需要上传的文件大小超过4MB,该单步上传接口不支持,需要使用分片上传逻辑处理。

内容的提问来源于stack exchange,提问作者Bipana shrestha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:27:02