Skip to content

Commit 761852f

Browse files
file order
1 parent 116ba89 commit 761852f

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/app/api/admin/imgtopdf/route.ts

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { NextApiRequest, NextApiResponse } from "next";
1+
import { type NextApiResponse } from "next";
22
import { PDFDocument } from "pdf-lib";
33
import multer from "multer";
44
import fs from "fs";
@@ -7,12 +7,12 @@ import { promisify } from "util";
77
import { NextResponse } from "next/server";
88
import { writeFile, unlink } from "fs/promises";
99
import { v4 as uuidv4 } from "uuid";
10-
import { cookies } from "next/headers"; // For session tracking
10+
import { cookies } from "next/headers";
1111

1212
const upload = multer({ dest: "uploads/" });
1313
const uploadMiddleware = promisify(upload.array("files"));
1414

15-
const COOKIE_NAME = 'session_id'; // Name of the session cookie
15+
const COOKIE_NAME = 'session_id';
1616

1717
function getSessionId(req: Request): string {
1818
const sessionId = cookies().get(COOKIE_NAME)?.value;
@@ -30,17 +30,21 @@ export async function POST(req: Request, res: NextApiResponse) {
3030
await uploadMiddleware(req as any, res as any);
3131

3232
const formData = await req.formData();
33-
const files = formData.getAll("files");
33+
const files: File[] = formData.getAll("files") as File[];
3434

35-
if (!files) {
35+
if (!files || files.length === 0) {
3636
return NextResponse.json({ error: "No files received." }, { status: 400 });
3737
}
3838

3939
try {
4040
const pdfDoc = await PDFDocument.create();
4141
const sessionId = getSessionId(req);
4242

43-
for (const file of files) {
43+
const orderedFiles = Array.from(files).sort((a, b) => {
44+
return a.name.localeCompare(b.name);
45+
});
46+
47+
for (const file of orderedFiles) {
4448
const fileBlob = new Blob([file]);
4549
const imgBytes = Buffer.from(await fileBlob.arrayBuffer());
4650
let img;
@@ -77,6 +81,7 @@ export async function POST(req: Request, res: NextApiResponse) {
7781
}
7882
}
7983

84+
8085
export async function DELETE(req: Request, res: NextApiResponse) {
8186
try {
8287
const sessionId = cookies().get(COOKIE_NAME)?.value;

0 commit comments

Comments
 (0)