[Python] FastAPI raises 422 Unprocessable Entity error when uploading File through Postman

Discussão em 'Python' iniciado por Stack, Dezembro 17, 2024.

  1. Stack

    Stack Membro Participativo

    I am using a POST request for uploading a file to a FastAPI application through Postman and save it to my local directory. However, a 422 (Unprocessable entity) error occurs, as shown below:

    [​IMG]

    In Postman, I selected the binary option to upload the file, as you can see in the image above.

    Below is how my FastAPI backend looks like:

    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)



    vendor.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."}

    Continue reading...

Compartilhe esta Página