Spaces:
Runtime error
Runtime error
File size: 1,204 Bytes
67e39cd 5f472fb 44c369d 5f472fb 44c369d 67e39cd 44c369d 67e39cd 44c369d 67e39cd | 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 | 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")
@app.post("/upload")
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}
@app.get("/gallery", response_class=HTMLResponse)
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})
|