fix(api): correct values of Content-Disposition attributes (#260)

This commit is contained in:
Ivan Shelepugin
2025-12-01 00:58:40 +03:00
committed by GitHub
parent 0928709173
commit f938723d9a

View File

@@ -17,12 +17,11 @@ export default async function handler(
} }
try { try {
const downloadUrl = decodeURIComponent(url); const downloadFilename = typeof filename === "string"
const downloadFilename = ? encodeURIComponent(filename)
(typeof filename === "string" ? decodeURIComponent(filename) : null) ?? : "attachment";
"attachment";
const upstream = await fetch(downloadUrl); const upstream = await fetch(url);
if (!upstream.ok) { if (!upstream.ok) {
return res.status(upstream.status).json({ return res.status(upstream.status).json({
@@ -36,7 +35,7 @@ export default async function handler(
res.setHeader("Content-Type", contentType); res.setHeader("Content-Type", contentType);
res.setHeader( res.setHeader(
"Content-Disposition", "Content-Disposition",
`attachment; filename="${downloadFilename}"`, `attachment; filename="${downloadFilename}"; filename*=UTF-8''${downloadFilename}`,
); );
const buffer = await upstream.arrayBuffer(); const buffer = await upstream.arrayBuffer();