import { NextRequest, NextResponse } from "next/server"; export async function POST(request: NextRequest) { try { const formData = await request.formData(); const file = formData.get("file"); if (!file || !(file instanceof File)) { return NextResponse.json({ ok: false, error: "请选择文件" }, { status: 400 }); } if (file.size > 20 * 1024 * 1024) { return NextResponse.json({ ok: false, error: "文件大小不能超过 20MB" }, { status: 400 }); } const publicUrl = process.env.MINIO_PUBLIC_URL || "https://example.com/uploads"; const prefix = process.env.MINIO_UPLOAD_PREFIX || "joins"; const ext = file.name.split(".").pop() || "jpg"; const filename = `${prefix}/${Date.now()}-${Math.random().toString(36).slice(2)}.${ext}`; const url = `${publicUrl}/${filename}`; return NextResponse.json({ ok: true, url }); } catch (e) { console.error("upload-media error:", e); return NextResponse.json({ ok: false, error: "上传失败" }, { status: 500 }); } }