【发布时间】:2021-10-21 12:07:23
【问题描述】:
使用请求 2.26.0.我想将文件发布到服务器。
下面带有fastapi swagger ui的结果代码很好, 但我从 python 代码中得到: {"detail":"解析正文出错"}
@router.post("/send/{email}")
async def send(email: str , files: List[UploadFile] = File(...)):
return user.send(email, files)
和发送功能:
def send(email: str, files):
for file in files:
with open(f'{file.filename}', "wb") as buffer:
shutil.copyfileobj(file.file, buffer)
print(email)
send_email(email, 'F:/PROJECT/scan2excel/input/ss.xls')
return {'file_name':'good'}
我从主要测试:
def upload_data(self, files_paths):
url = 'http://localhost:8000/user/send/'+str(self.email)
headers = {'Content-Type':'multipart/form-data; charset=utf-8; boundary=---- WebKitFormBoundary9JTSxAotKGVAuzQF'}
f={"file": ("filename", open('F:/PROJECT/scan2excel/input/1.jpg', "rb"), "image/jpeg")}
response = requests.post(url, files=f, headers=headers)
【问题讨论】:
-
为什么要自己设置边界头?我还猜测 JPEG 文件没有 UTF-8 作为其字符集?
-
我有同样的错误:headers = {'Content-Type':'multipart/form-data'}
-
您根本不必自己操作标题;让请求为您完成。
标签: python file-upload python-requests multipartform-data fastapi