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

通过Trello API上传base64字符串为图片时被识别为文本如何解决

问题原因

  • 你本地存储的文件本身已经是图片的base64编码字符串,现有代码对其进行了二次base64编码,导致数据格式错误
  • Trello API要求file参数是二进制数据,你直接传入了base64文本字符串,所以被识别为文本文件
  • 参数mimeType 末尾多了一个无效空格,导致API无法正确识别格式参数
  • 读取base64文件时不需要额外做编码转码操作,直接解码base64得到图片二进制数据即可

修正后代码

import requests
import base64

key = "xxx"
token = "yyy"

url = "https://api.trello.com/1/cards/618390bbdc3cb10550c9912b/attachments"
pathToFile = "C:/file"

# 读取本地base64字符串
with open(pathToFile, "r", encoding="ascii") as f:
    img_base64_str = f.read().strip()

# 直接解码base64得到png二进制数据
img_binary = base64.b64decode(img_base64_str)

# 发起请求,指定文件的文件名、二进制内容和mimetype
response = requests.post(
    url,
    params={'token': token, 'key': key},
    files={'file': ('fisk.png', img_binary, 'image/png')}
)

# 可选:打印返回结果检查是否成功
print(response.status_code)
print(response.json())

核心改动说明

  • 取消了原代码中多余的二次base64编码逻辑,直接对本地读取的base64字符串做解码,得到PNG图片的二进制数据
  • 将二进制数据传入files参数,同时指定文件名和正确的mimetypeimage/png,符合Trello API对multipart/form-data格式的要求
  • 修正了参数名多余空格的错误,将mimetype配置放到files参数的元组中,更符合requests库的传参规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:06:02