DEV Community

loading...
Cover image for How to create server of files with FastAPI

How to create server of files with FastAPI

Nelson Adonis Hernandez
Frontend Developer & Creator Content
Updated on ・1 min read

In this example I will show you how to upload, download, delete and obtain files with FastAPI

How to upload files by Form Data using FastAPI

In the following code we define the file field, it is there where we will receive the file by Form Data

from fastapi import FastAPI, UploadFile, File
app = FastAPI()

@app.post("/upload")
async def upload_file(file: UploadFile = File(...)):
    with open(file.filename, 'wb') as image:
        content = await file.read()
        image.write(content)
        image.close()
    return JSONResponse(content={"filename": file.filename},
status_code=200)
Enter fullscreen mode Exit fullscreen mode

Upload files to fastapi with postman

How to download files using FastAPI

from fastapi import FastAPI
from os import getcwd
from fastapi.responses import FileResponse
app = FastAPI()

@router.get("/download/{name_file}")
def download_file(name_file: str):
    return FileResponse(path=getcwd() + "/" + name_file, media_type='application/octet-stream', filename=name_file)
Enter fullscreen mode Exit fullscreen mode

How to get files using FastAPI

from fastapi import FastAPI
from os import getcwd
from fastapi.responses import FileResponse

app = FastAPI()

@router.get("/file/{name_file}")
def get_file(name_file: str):
    return FileResponse(path=getcwd() + "/" + name_file)
Enter fullscreen mode Exit fullscreen mode

How to delete files using FastAPI

from fastapi import FastAPI
from os import getcwd, remove
from fastapi.responses import JSONResponse

app = FastAPI()

@router.delete("/delete/file/{name_file}")
def delete_file(name_file: str):
    try:
        remove(getcwd() + "/" + name_file)
        return JSONResponse(content={
            "removed": True
            }, status_code=200)   
    except FileNotFoundError:
        return JSONResponse(content={
            "removed": False,
            "error_message": "File not found"
        }, status_code=404)
Enter fullscreen mode Exit fullscreen mode

Discussion (0)