In this example I will show you how to upload, download, delete and obtain files with FastAPI
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)
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)
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)
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)
Top comments (0)