From 7f14135616c4dca19eb33dae1691377825e4cc96 Mon Sep 17 00:00:00 2001 From: keyy1315 Date: Thu, 29 May 2025 13:47:07 +0900 Subject: [PATCH] fix: resolve file download error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - content-type이 text/html 일 경우에만 에러 핸들링, 이외 타입은 octet-stream으로 반환 --- src/app/api/qna/file/route.ts | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/app/api/qna/file/route.ts b/src/app/api/qna/file/route.ts index 7149b28..01930f2 100644 --- a/src/app/api/qna/file/route.ts +++ b/src/app/api/qna/file/route.ts @@ -4,6 +4,7 @@ import { NextResponse } from 'next/server' export async function GET(request: Request) { const { searchParams } = new URL(request.url) const encodeFileNo = searchParams.get('encodeFileNo') + const srcFileNm = searchParams.get('srcFileNm') if (!encodeFileNo) { @@ -16,17 +17,16 @@ export async function GET(request: Request) { encodeFileNo, }, }) - if (response.headers['content-type'] === 'application/octet-stream;charset=UTF-8') { - return new NextResponse(response.data, { - status: 200, - headers: { - 'Content-Type': 'application/octet-stream;charset=UTF-8', - 'Content-Disposition': `attachment; filename="${srcFileNm}"`, - }, - }) - } else { + if (response.headers['content-type'] === 'text/html;charset=utf-8') { return NextResponse.json({ error: 'file not found' }, { status: 404 }) } + return new NextResponse(response.data, { + status: 200, + headers: { + 'Content-Type': 'application/octet-stream;charset=UTF-8', + 'Content-Disposition': `attachment; filename="${srcFileNm}"`, + }, + }) } catch (error: any) { return NextResponse.json({ error: error.response.data }, { status: 500 }) }