0
0
FastAPIframework~5 mins

Multiple file uploads in FastAPI

Choose your learning style9 modes available
Introduction

Uploading multiple files lets users send many files at once. This saves time and makes apps easier to use.

When users need to upload several photos to a profile or gallery.
When a form requires multiple documents, like resumes and cover letters.
When users want to upload many files for backup or sharing.
When collecting multiple images for a product listing.
When users submit multiple attachments in a support ticket.
Syntax
FastAPI
from fastapi import FastAPI, File, UploadFile
from typing import List

app = FastAPI()

@app.post("/uploadfiles/")
async def upload_files(files: List[UploadFile] = File(...)):
    return {"filenames": [file.filename for file in files]}

Use List[UploadFile] to accept multiple files.

The File(...) tells FastAPI this is a file upload field.

Examples
Basic example to receive multiple files and return their names.
FastAPI
from fastapi import FastAPI, File, UploadFile
from typing import List

app = FastAPI()

@app.post("/uploadfiles/")
async def upload_files(files: List[UploadFile] = File(...)):
    return {"filenames": [file.filename for file in files]}
This example reads each file's content and returns filename and size.
FastAPI
from fastapi import FastAPI, File, UploadFile
from typing import List

app = FastAPI()

@app.post("/uploadfiles/")
async def upload_files(files: List[UploadFile] = File(...)):
    contents = []
    for file in files:
        content = await file.read()
        contents.append({"filename": file.filename, "size": len(content)})
    return contents
Sample Program

This FastAPI app defines a POST endpoint /uploadfiles/ that accepts multiple files. It returns a JSON with the list of uploaded file names.

FastAPI
from fastapi import FastAPI, File, UploadFile
from typing import List

app = FastAPI()

@app.post("/uploadfiles/")
async def upload_files(files: List[UploadFile] = File(...)):
    filenames = [file.filename for file in files]
    return {"uploaded_files": filenames}
OutputSuccess
Important Notes

Remember to use async and await when reading file contents.

Use List[UploadFile] to handle multiple files cleanly.

FastAPI automatically handles the multipart form data for file uploads.

Summary

Use List[UploadFile] with File(...) to accept multiple files.

Return file info like names or sizes after upload.

FastAPI makes handling multiple file uploads simple and efficient.