Maison >développement back-end >Tutoriel Python >Comment résoudre les problèmes de téléchargement de fichiers vides dans FastAPI ?
Comment télécharger un fichier à l'aide de FastAPI ?
Problème :
Lorsque vous utilisez FastAPI pour télécharger un fichier selon à la documentation officielle, la variable file2store reste vide.
Cause :
Solution :
application. py :
from fastapi import File, UploadFile @app.post("/create_file") def create_file(file: UploadFile = File(...)): try: contents = file.file.read() # store contents to the database except Exception: return {"message": "Error uploading file"} finally: file.file.close() return {"message": f"Successfully uploaded {file.filename}"}
Alternative pour Async Points de terminaison :
@app.post("/create_file") async def create_file(file: UploadFile = File(...)): try: contents = await file.read() # store contents to the database except Exception: return {"message": "Error uploading file"} finally: await file.close() return {"message": f"Successfully uploaded {file.filename}"}
Téléchargement de plusieurs fichiers :
from fastapi import File, UploadFile from typing import List @app.post("/upload") def upload(files: List[UploadFile] = File(...)): for file in files: try: contents = file.file.read() # store contents to the database except Exception: return {"message": "Error uploading file(s)"} finally: file.file.close() return {"message": f"Successfully uploaded {[file.filename for file in files]}"}
Demande à partir d'un script Python :
requests.post(url="SERVER_URL/create_file", files={"file": (f.name, f, "multipart/form-data")})
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!