1

I am new to web communication. I use ubuntu and try to learn fastapi. Let's say I post a file using curl. Seems to be common opinion that this is the best way to do it:

curl -F "file=@image1.jpg" http://127.0.0.1:8000/image -v

Now, on the server side I want to retrieve the image and add 1 to every pixel-value and then return it. But I have now idea how I "catch" the image from curl, how do I do that? Right now, I only have the the dummy function below which does not do anything intelligent:

@app.post("/image")
async def post_test():
    print("I don't know how to catch the image :( ")
    return {"You sent an image..."}

Please help with how I should write the post_test function! (Flask would work as well.)

Henrik Leijon
  • 1,277
  • 2
  • 10
  • 15
  • 1
    Did you read the [request files](https://fastapi.tiangolo.com/tutorial/request-files/) documentation? – chash Jul 10 '20 at 22:30

1 Answers1

2

You can check the full answer from my SO answer for a similar question (How to send file to fastapi endpoint using postman)

Basically, you would have to change your code to

from fastapi import FastAPI, UploadFile, File


app = FastAPI()


@app.post("/file/")
async def create_upload_file(file: UploadFile = File(...)):
    # Access your file object via file.file,
    # and perform all the necessary transformations
    # Return the filename, but you may return the file itself
    return {"filename": file.filename}
lsabi
  • 3,641
  • 1
  • 14
  • 26