mr-shortman 1597d4f113
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 0s
fixed editor missing peaces
2025-03-15 23:48:44 +01:00

31 lines
903 B
TypeScript

"use server";
import fs from "node:fs/promises";
import { revalidatePath } from "next/cache";
import { auth } from "../auth";
import { hasPermission, Role } from "@/lib/validation/permissions";
export async function uploadFile(formData: FormData) {
const session = await auth();
if (!session || !hasPermission(session.user.role, Role.EDITOR)) return false;
console.log("Starting upload");
const file = formData.get("file") as File;
const arrayBuffer = await file.arrayBuffer();
const buffer = new Uint8Array(arrayBuffer);
const filename = `upload-${Date.now()}-${file.name}.png`;
console.log("Filename", filename);
try {
await fs.writeFile(`./public/uploads/${filename}`, buffer);
console.log("File uploaded successfully");
revalidatePath("/");
return `/uploads/${filename}`;
} catch (e) {
console.error("Error uploading file:", e);
return false;
}
}