From 8ddc6cb182a3b8e79b031a5a9040759952f17d68 Mon Sep 17 00:00:00 2001 From: skidoodle Date: Wed, 13 Dec 2023 11:29:31 +0100 Subject: [PATCH] zip proxy support --- src/pages/api/erettsegi.ts | 4 ++-- src/pages/api/proxy.ts | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/pages/api/erettsegi.ts b/src/pages/api/erettsegi.ts index 9aba86b..91964d6 100644 --- a/src/pages/api/erettsegi.ts +++ b/src/pages/api/erettsegi.ts @@ -74,9 +74,9 @@ export default function handler(req: NextApiRequest, res: NextApiResponse) { case 'inf': case 'infoism': case 'digkult': - flZipUrl = `${baseUrl}${prefix}${forras}_${shortev}${honap}_${feladat}.zip` + flZipUrl = `${proxiedUrl}${prefix}${forras}_${shortev}${honap}_${feladat}.zip` flPdfUrl = `${proxiedUrl}${prefix}_${shortev}${honap}_${feladat}.pdf` - utZipUrl = `${baseUrl}${prefix}${megoldas}_${shortev}${honap}_${utmutato}.zip` + utZipUrl = `${proxiedUrl}${prefix}${megoldas}_${shortev}${honap}_${utmutato}.zip` utPdfUrl = `${proxiedUrl}${prefix}_${shortev}${honap}_${utmutato}.pdf` break default: diff --git a/src/pages/api/proxy.ts b/src/pages/api/proxy.ts index 827b8b8..ca1fd52 100644 --- a/src/pages/api/proxy.ts +++ b/src/pages/api/proxy.ts @@ -21,16 +21,18 @@ export default async function handler( try { const response = await fetch(link, { method: 'GET' }) + const contentType = response.headers.get('content-type') - if (response.headers.get('content-type') !== 'application/pdf') { - return res.status(400).json({ error: 'Érvénytelen link' }) + if (contentType) { + const filename = link.split('/').pop() ?? 'download' + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`) + res.setHeader('Content-Type', contentType) } if (response.ok) { - res.setHeader('Content-Type', 'application/pdf') const arrayBuffer: ArrayBuffer = await response.arrayBuffer() - const pdfBuffer: Buffer = Buffer.from(arrayBuffer) - res.send(pdfBuffer) + const buffer: Buffer = Buffer.from(arrayBuffer) + res.send(buffer) } else { res .status(response.status)