我正在使用 POST 方法上传一个文件并将其保存在我的本地目录 c: ck 中。但是,出现错误 422(无法处理的实体),如下Postman Result/
您能帮我找出原因吗?
我选择了二进制文件并将其上传到 Postman,正如您在发布的图片中看到的那样。
下面是我使用 FASTAPI 编写的 Python 代码:
main.py
from fastapi import FastAPI
from api.endpoints.vendor import router
app = FastAPI(title='Vendor Acknolegment API')
app.include_router(router, prefix='/vendor', tags=['vendor confirmation'])
if __name__ == '__main__':
import uvicorn
print("entered here")
uvicorn.run("main:app", host="0.0.0.0", port=8000,
log_level='info', reload=True)
供应商.py
from fastapi import APIRouter, status, File, UploadFile
#from lxml import etree
import os
# file path
UPLOAD_DIR = r"c:\ack"
# check if the directory exists.
os.makedirs(UPLOAD_DIR, exist_ok=True)
# creates the endpoint path
router = APIRouter()
# POST Ack
@router.post("/ack/", status_code=status.HTTP_201_CREATED)
async def upload_ack(file: UploadFile = File(...)):
# define the complete path where the file will be saved.
file_location = os.path.join(UPLOAD_DIR, file.filename)
with open(file_location, "wb") as f:
f.write(await file.read())
return {"message": f"The file '{file.filename}' has been successfully saved into the server."}