import { NextResponse } from "next/server"; import { mkdir, writeFile } from "fs/promises"; import path from "path"; import crypto from "crypto"; export const runtime = "nodejs"; // 파일 시스템 사용 export async function POST(req: Request) { const form = await req.formData(); const file = form.get("file") as File | null; if (!file) return NextResponse.json({ ok: false, error: "NO_FILE" }, { status: 400 }); const bytes = Buffer.from(await file.arrayBuffer()); const ext = (file.name.split(".").pop() || "png").toLowerCase(); const name = `${crypto.randomUUID()}.${ext}`; const dir = path.join(process.cwd(), "public", "uploads"); await mkdir(dir, { recursive: true }); await writeFile(path.join(dir, name), bytes); // 정적 서빙: public/uploads/... const url = `/uploads/${name}`; return NextResponse.json({ ok: true, url }); }