imageupload / main.py
manny1313's picture
Corrected mnt path
5f472fb
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})