File operations let your FastAPI app save, read, and manage files like images or documents. This helps your app handle user uploads and serve files easily.
0
0
Why file operations are common in FastAPI
Introduction
When users upload profile pictures or documents
To save logs or reports generated by the app
To serve static files like images or PDFs
When you need to read configuration or data files
To store temporary files during processing
Syntax
FastAPI
from fastapi import FastAPI, File, UploadFile app = FastAPI() @app.post("/uploadfile/") async def create_upload_file(file: UploadFile = File(...)): contents = await file.read() with open(f"./files/{file.filename}", "wb") as f: f.write(contents) return {"filename": file.filename}
Use UploadFile to handle file uploads efficiently.
Always use async functions with await when reading files in FastAPI.
Examples
This example reads the uploaded file and returns its size.
FastAPI
from fastapi import FastAPI, File, UploadFile app = FastAPI() @app.post("/uploadfile/") async def upload(file: UploadFile = File(...)): contents = await file.read() return {"file_size": len(contents)}
This example serves a static file to the user.
FastAPI
from fastapi import FastAPI from fastapi.responses import FileResponse app = FastAPI() @app.get("/getfile/") def get_file(): return FileResponse("./files/example.pdf")
Sample Program
This FastAPI app lets users upload files. It saves each file in a folder called 'uploaded_files'. It returns a message confirming the file was saved.
FastAPI
from fastapi import FastAPI, File, UploadFile import os app = FastAPI() UPLOAD_DIR = "./uploaded_files" os.makedirs(UPLOAD_DIR, exist_ok=True) @app.post("/upload/") async def upload_file(file: UploadFile = File(...)): file_location = os.path.join(UPLOAD_DIR, file.filename) contents = await file.read() with open(file_location, "wb") as f: f.write(contents) return {"info": f"File '{file.filename}' saved at '{file_location}'"}
OutputSuccess
Important Notes
Always check file size and type to keep your app safe.
Use UploadFile instead of raw bytes for better performance with large files.
Make sure the folder to save files exists or create it before saving.
Summary
File operations let FastAPI apps handle user files easily.
Use UploadFile and async reading for efficient uploads.
Saving and serving files is common for many web app features.