Spaces:
Sleeping
Sleeping
File size: 2,438 Bytes
b665879 6d73052 b665879 fef8a16 b665879 fef8a16 b665879 fef8a16 b665879 6d73052 fef8a16 b665879 6d73052 b665879 6d73052 b665879 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
import time
import base64
from pydantic import BaseModel
from fastapi import FastAPI, APIRouter
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from starlette.responses import FileResponse
# Création de l'application FastAPI
app = FastAPI()
# Configuration du CORS
origins = [
"http://localhost:7860", # Exemple d'origine (ajoutez vos origines ici)
"https://example.com",
]
app.add_middleware(
CORSMiddleware,
allow_origins=origins, # Liste des origines autorisées
allow_credentials=True,
allow_methods=["*"], # Autorise toutes les méthodes (GET, POST, etc.)
allow_headers=["*"], # Autorise tous les en-têtes
)
# Modèles Pydantic
class ImageData(BaseModel):
image: str
class ImagesData(BaseModel):
idCard: str
profileImage: str
# Déclaration d'un routeur pour la gestion des fichiers statiques et des autres routes
router = APIRouter()
# Routes pour les fichiers statiques
@router.get("/")
async def index() -> FileResponse:
return FileResponse(path="front/dist/index.html", media_type="text/html")
@router.get("/verification")
async def verif() -> FileResponse:
return FileResponse(path="front/dist/index.html", media_type="text/html")
# Montée des fichiers statiques à la racine "/"
app.include_router(router)
app.mount("/", StaticFiles(directory="front/dist", html=True), name="static")
# Route pour l'upload d'image en base64
@app.post("/uploadpdf")
async def upload_pdf(image_data: ImageData):
# Extraire le contenu Base64
header, encoded = image_data.image.split(',', 1) # Séparer le header des données
binary_data = base64.b64decode(encoded) # Décoder les données
# Simulation du traitement avec un délai
time.sleep(20)
return {"message": "Image reçue et sauvegardée"}
# Route pour l'upload d'ID et d'image de profil
@app.post("/uploadids")
async def upload_ids(images_data: ImagesData):
# Traiter la carte d'identité
header, encoded = images_data.idCard.split(',', 1) # Séparer le header des données
id_card_binary_data = base64.b64decode(encoded)
# Traiter l'image de profil
header, encoded = images_data.profileImage.split(',', 1) # Séparer le header des données
profile_image_binary_data = base64.b64decode(encoded)
# Simulation du traitement avec un délai
time.sleep(20)
return {"message": "Images reçues et sauvegardées"}
|