import { writeFile, mkdir } from "node:fs/promises"; import { resolve } from "node:path"; export default defineEventHandler(async (event) => { const parts = await readMultipartFormData(event); if (!parts || parts.length === 0) { throw createError({ statusCode: 400, message: "No file provided" }); } const filePart = parts.find((p) => p.name === "file"); if (!filePart || !filePart.filename) { throw createError({ statusCode: 400, message: "No file provided" }); } const filename = filePart.filename.replace(/[^a-zA-Z0-9._-]/g, "_"); const dir = resolve(process.cwd(), "public/files"); await mkdir(dir, { recursive: true }); await writeFile(resolve(dir, filename), filePart.data); return { name: filename, size: filePart.data.length }; });