import os import uuid from flask import request, jsonify, url_for import db from core.flask_app import app @app.route("/game//upload", methods=["POST"]) def upload_file(slug): """Utilisé par les réglages Image/Vidéo pour héberger un fichier envoyé par l'utilisateur (au lieu d'une simple adresse URL) — le fichier est stocké dans le dossier du jeu, et l'adresse renvoyée est ensuite utilisée exactement comme une URL normale.""" f = request.files.get("file") if not f or not f.filename: return jsonify({"error": "Aucun fichier reçu"}), 400 ext = "".join(c for c in os.path.splitext(f.filename)[1].lower() if c.isalnum() or c == ".")[:10] filename = uuid.uuid4().hex + ext upload_dir = os.path.join(db.game_dir(slug), "uploads") os.makedirs(upload_dir, exist_ok=True) f.save(os.path.join(upload_dir, filename)) return jsonify({"url": url_for("uploaded_file", slug=slug, filename=filename)})