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

使用Trello API上传8KB图片遇‘文件过大’错误求助

解决Trello上传小文件却报"File too large"的问题

问题根源

你直接把图片Buffer放在JSON请求体里传给Trello接口,而文件上传需要用multipart/form-data格式,这种错误的请求格式导致Trello无法正确解析文件大小,误判为超出限制。

修复方案

改用FormData封装文件数据,让axios自动处理正确的请求头:

const image = await sharp(
  "path/qrcode.png"
)
  .resize(200, 200)
  .webp({ quality: 20 })
  .toFormat("png")
  .toBuffer();

// 创建卡片
const cardRes = await axios.post(
  `https://api.trello.com/1/cards?idList={LISTKEYHERE}&key=${TRELLO_KEY}&token=${TRELLO_TOKEN}`,
  {
    name: "Create new card",
    pos: "top",
  }
);

const cardId = cardRes.data.id;

// 构建FormData对象
const formData = new FormData();
formData.append("file", image, "qrcode.png"); // 第三个参数为文件名,帮助Trello识别文件类型

// 上传附件
await axios.post(
  `https://api.trello.com/1/cards/${cardId}/attachments?key=${TRELLO_KEY}&token=${TRELLO_TOKEN}`,
  formData,
  {
    headers: formData.getHeaders(), // 自动生成multipart/form-data请求头
  }
);

补充说明

  • 手动上传能成功是因为前端默认用multipart/form-data格式提交文件,和你代码里的JSON请求格式完全不同。
  • 如果要在创建卡片时同时上传附件,同样需要把所有字段(name、pos、file等)都放到FormData里,不要用JSON请求体。

内容的提问来源于stack exchange,提问作者Bao Pham

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:10:49