import { NextRequest, NextResponse } from "next/server"; import { PrismaClient } from "@prisma/client"; const prisma = new PrismaClient(); export const POST = async (req: NextRequest) => { try { const formData = await req.formData(); const body = Object.fromEntries(formData); const file = (body.file as File) || null; if (!file) { return NextResponse.json({ success: false, error: "No file provided", }, { status: 400 }); } // Convert file to buffer const buffer = Buffer.from(await file.arrayBuffer()); // Store file in database const savedFile = await prisma.file.create({ data: { filename: file.name, mimetype: file.type, size: file.size, data: buffer, }, }); return NextResponse.json({ success: true, file: { id: savedFile.id, filename: savedFile.filename, mimetype: savedFile.mimetype, size: savedFile.size, createdAt: savedFile.createdAt, }, }); } catch (error) { console.error("Upload error:", error); return NextResponse.json({ success: false, error: "Failed to upload file", }, { status: 500 }); } finally { await prisma.$disconnect(); } };