Next.js Discord

Discord Forum

SOLVED : how to create download page from private folder with next js 13 App directory?

Unanswered
Britannia Petite posted this in #help-forum
Open in Discord
Britannia PetiteOP
SOLVED

import fs from "fs";
import { join } from "path";

export async function GET(
  request: Request,
  { params }: { params: { slug: string } }
) {
  const slug = params.slug; // 'a', 'b', or 'c'
  const data = { nama: slug };

  console.log(data);

  const uploadDir = join(process.env.ROOT_DIR || process.cwd(), `/uploads/`);
  const filePath = join(uploadDir, "18-06-2023", "a.pdf");

  var file = await fs.createReadStream(filePath);
  var stat = await fs.statSync(filePath);
  //var file = await fs.readFileSync(filePath);

  console.log(stat);

  const res = new Response(file, {
    headers: {
      "Content-Type": "application/pdf",
      "Content-Length": stat.size.toString(),
      "Content-Disposition": "attachment; filename=a.pdf",
    },
  });

  return res;

  // const fileContents = { id: 8221 };
  // return NextResponse.json({ data });
}

0 Replies