FastAPI无法接收多文件列表,单文件正常问题排查
问题原因与解决办法
你的代码中FastAPI没有正确识别List[UploadFile]类型的参数为多文件上传字段,导致Swagger UI生成了普通字符串输入框而非文件选择器,具体原因和解决方式如下:
可能的原因及修复方案
1. 缺少FastAPI实例化
确保代码开头创建了FastAPI实例,否则路径操作函数不会被正确注册:
from fastapi import FastAPI, File, UploadFile, HTTPException from pathlib import Path from typing import List app = FastAPI() # 这一行是核心,不能遗漏 @app.post("/uploadfile/") def create_upload_file(file: List[UploadFile] = File(...)): # 添加文件处理逻辑,比如保存文件或返回文件名列表 return {"uploaded_files": [f.filename for f in file]}
2. FastAPI版本过低
部分旧版本FastAPI对List[UploadFile]的表单解析支持不完善,建议升级到最新稳定版:
pip install --upgrade fastapi uvicorn
3. 参数声明细节问题
确保参数类型注解严格为List[UploadFile],且默认值为File(...)(不要省略...,也不要添加多余参数)。虽然参数名可以是任意合法名称,但使用复数形式(比如files)更符合语义,不过这不是功能必需的。
验证方法
完成上述修复后,重启服务,访问默认Swagger UI地址http://localhost:8000/docs,此时/uploadfile/接口会显示支持多文件选择的上传框。
内容的提问来源于stack exchange,提问作者Woobin Jang
相关产品推荐
相关产品推荐

