Python用requests上传图片到telegra.ph报错No files passed怎么解决?
问题排查与解决方法
排查步骤
- 检查代码是否导入requests库:当前提供的代码未包含
import requests语句,缺失依赖导入会导致请求构造异常,首先补全导入语句。 - 检查接口协议:telegra.ph上传接口仅支持HTTPS访问,代码中使用HTTP地址会触发301重定向,requests默认处理重定向时会丢弃POST请求的文件数据,导致接口收到空请求返回报错。
- 检查本地文件有效性:确认传入的命令行参数对应的文件存在、程序有读取权限、文件内容非空且大小不超过5MB(telegra.ph单文件上传上限)。
- 检查MIME类型配置:上传非jpeg格式文件时,需要将
image/jpeg修改为对应文件的MIME值,如png对应image/png、gif对应image/gif。
修正后代码
import sys import requests if len(sys.argv) < 2: print("You must specify a file name.") sys.exit(-1) filePath = sys.argv[1] with open(filePath, 'rb') as f: print( requests.post( 'https://telegra.ph/upload', files={'file': ('file', f, 'image/jpeg')} ).json() )
运行修正后的代码即可正常获取上传后的图片地址,返回格式示例为[{'src': '/file/xxx.jpg'}],拼接https://telegra.ph前缀即可得到完整可访问的图片链接。
内容的提问来源于stack exchange,提问作者user14768474
相关产品推荐
相关产品推荐

