From 427de70399e16e9a2d253ad86f5403fa1621993c Mon Sep 17 00:00:00 2001 From: yschoi Date: Tue, 20 May 2025 15:07:26 +0900 Subject: [PATCH] =?UTF-8?q?=ED=8C=8C=EC=9D=BC=EB=8B=A4=EC=9A=B4=EB=A1=9C?= =?UTF-8?q?=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/sn/app/oper/floodPre/page.tsx | 33 +++++++++++++++++++++++++++++- apps/sn/next.config.ts | 10 +++++++-- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/apps/sn/app/oper/floodPre/page.tsx b/apps/sn/app/oper/floodPre/page.tsx index d2c5fb848..62ecd15b8 100644 --- a/apps/sn/app/oper/floodPre/page.tsx +++ b/apps/sn/app/oper/floodPre/page.tsx @@ -11,6 +11,37 @@ const Page = () => { const [selectedDate, setSelectedDate] = useState(new Date()) const [company, setCompany] = useState('') const [pjNm, setpjNm] = useState('') + + + const handleDownload = async () => { + try { + const response = await fetch('/sn/attach-service/api/v1/download/6066b08c-2a55-438c-b8ff-2aed9739a0c6', { + method: 'GET', + }); + + if (!response.ok) { + throw new Error('파일 다운로드 실패'); + } + + const blob = await response.blob(); + const url = window.URL.createObjectURL(blob); + + // 다운로드를 트리거할 가짜 태그 생성 + const link = document.createElement('a'); + link.href = url; + link.download = 'test.jpg'; // 원하는 파일명 지정 + document.body.appendChild(link); + link.click(); + + // 메모리 해제 + link.remove(); + window.URL.revokeObjectURL(url); + } catch (error) { + console.error('다운로드 중 오류 발생:', error); + } + }; + + return ( @@ -53,7 +84,7 @@ const Page = () => {

사업정보 등록현황

- +
{ }} onPageChange={function (page: number): void { diff --git a/apps/sn/next.config.ts b/apps/sn/next.config.ts index bc9505fef..12162c0a0 100644 --- a/apps/sn/next.config.ts +++ b/apps/sn/next.config.ts @@ -1,7 +1,9 @@ import type { NextConfig } from "next"; import webpack from "webpack"; -const geoserverUrl = process.env.NEXT_PUBLIC_GEOSERVER_URL?.replace(/\/$/, '') ?? ''; +const geoServerUrl = process.env.NEXT_PUBLIC_GEOSERVER_URL?.replace(/\/$/, '') ?? ''; +const cnServerUrl = process.env.NEXT_PUBLIC_SERVER_API_URL?.replace(/\/$/, '') ?? ''; + const nextConfig: NextConfig = { basePath: "/sn", @@ -46,7 +48,11 @@ const nextConfig: NextConfig = { return [ { source: '/geoserver/:hasudo*', - destination: `${geoserverUrl}/:hasudo*`, + destination: `${geoServerUrl}/:hasudo*`, + }, + { + source: '/attach-service/:path*', + destination: `${cnServerUrl}/attach-service/:path*`, }, ]; },