Spaces:
Runtime error
Runtime error
| from fastapi import FastAPI, File, UploadFile, Request | |
| from fastapi.responses import HTMLResponse | |
| from fastapi.staticfiles import StaticFiles | |
| from fastapi.templating import Jinja2Templates | |
| import shutil | |
| import os | |
| from datetime import datetime | |
| app = FastAPI() | |
| BASE_DIR = "/mnt/data" | |
| UPLOAD_DIR = os.path.join(BASE_DIR, "uploads") | |
| # Only create 'uploads', not '/mnt/data' | |
| if not os.path.exists(UPLOAD_DIR): | |
| os.makedirs(UPLOAD_DIR) | |
| app.mount("/uploads", StaticFiles(directory=UPLOAD_DIR), name="uploads") | |
| templates = Jinja2Templates(directory="templates") | |
| async def upload_image(file: UploadFile = File(...)): | |
| filename = datetime.now().strftime("%Y%m%d_%H%M%S_") + file.filename | |
| file_path = os.path.join(UPLOAD_DIR, filename) | |
| with open(file_path, "wb") as buffer: | |
| shutil.copyfileobj(file.file, buffer) | |
| return {"message": "Image uploaded", "filename": filename} | |
| async def show_gallery(request: Request): | |
| images = os.listdir(UPLOAD_DIR) | |
| images.sort(reverse=True) | |
| recent_images = images[:5] | |
| return templates.TemplateResponse("gallery.html", {"request": request, "images": recent_images}) | |