From db7905c583f71c1d850398e37e0a7a5c8a1daaf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B1=84=EC=A7=80=EC=9B=90?= Date: Wed, 14 May 2025 12:41:09 +0900 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=EC=84=A4=EB=AC=B8=20=EC=A0=9C?= =?UTF-8?q?=EC=B6=9C=20=EC=8B=9C=20=ED=8C=8C=EC=9D=BC=EB=AA=85=20=EC=95=9E?= =?UTF-8?q?=EC=97=90=20prefix=20=EB=B6=99=EC=97=AC=EC=84=9C=20api=20?= =?UTF-8?q?=EC=9A=94=EC=B2=AD=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx b/src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx index 91e8a23..0d0e79f 100644 --- a/src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx +++ b/src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx @@ -164,7 +164,12 @@ const SubmitSurveyPage = () => { // 파일 추가 answers.forEach((answer) => { if (answer.file) { - formData.append(`files`, answer.file); + const originalFileName = answer.file.name; + const newFileName = `${answer.questionId}$$###${originalFileName}`; + const newFile = new File([answer.file], newFileName, { + type: answer.file.type, + }); + formData.append(`files`, newFile); } }); From f5e9c6fa0649efab0e6ba457e0f38635111a9405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B1=84=EC=A7=80=EC=9B=90?= Date: Wed, 14 May 2025 12:56:57 +0900 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=EC=84=A4=EB=AC=B8=20=EC=A0=9C?= =?UTF-8?q?=EC=B6=9C=20=EC=A4=91=20=ED=8C=8C=EC=9D=BC=20=EC=97=85=EB=A1=9C?= =?UTF-8?q?=EB=93=9C=20=EC=8B=9C=20=EC=B5=9C=EB=8C=80=20=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=20=ED=81=AC=EA=B8=B0=20=EC=B4=88=EA=B3=BC=EC=8B=9C=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=EC=97=90=20=EC=B6=94=EA=B0=80=EB=90=98=EC=A7=80=20?= =?UTF-8?q?=EC=95=8A=EB=8F=84=EB=A1=9D=20=EC=BD=94=EB=93=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SubmitSurveyPage/SubmitSurveyPage.tsx | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx b/src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx index 0d0e79f..6b7be48 100644 --- a/src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx +++ b/src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx @@ -12,6 +12,8 @@ import { } from "@mui/material"; import { useNavigate, useParams } from "react-router-dom"; import apiClient from "@apis/apiClient"; +import { toast, ToastContainer } from "react-toastify"; +import "react-toastify/dist/ReactToastify.css"; interface Question { choices: { id: number; text: string }[]; @@ -103,7 +105,18 @@ const SubmitSurveyPage = () => { event: React.ChangeEvent ) => { if (event.target.files && event.target.files.length > 0) { - handleAnswerChange(questionIndex, event.target.files[0]); + const file = event.target.files[0]; + const maxSize = 10 * 1024 * 1024; // 10MB + + if (file.size > maxSize) { + toast.error("파일 크기는 10MB를 초과할 수 없습니다."); + // 파일 선택 초기화 + event.target.value = ""; + handleAnswerChange(questionIndex, null); + return; + } + + handleAnswerChange(questionIndex, file); } }; @@ -204,6 +217,18 @@ const SubmitSurveyPage = () => { return ( + 설문 답변 제출 From cc4f30aeefcb0fcd6cb209c21cdb547409e8d80e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B1=84=EC=A7=80=EC=9B=90?= Date: Wed, 14 May 2025 12:57:16 +0900 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=ED=8C=8C=EC=9D=BC=20=EC=97=85?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20=EC=8B=9C=20=ED=8C=8C=EC=9D=BC=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20=EC=A0=95=EB=B3=B4=EB=8A=94=20requestDTO=EC=97=90?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx b/src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx index 6b7be48..88a2486 100644 --- a/src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx +++ b/src/pages/SubmitSurveyPage/SubmitSurveyPage.tsx @@ -166,11 +166,18 @@ const SubmitSurveyPage = () => { const formData = new FormData(); // requestDTO를 JSON 문자열로 변환하여 FormData에 추가 - const requestDTO = answers.map((answer) => ({ - questionId: answer.questionId, - choiceIds: answer.choiceIds || [], - answer: answer.answer || "", - })); + const requestDTO = answers + .filter((answer) => { + const question = surveyQuestions.find( + (q) => q.id === answer.questionId + ); + return question?.type !== "FILE_UPLOAD"; + }) + .map((answer) => ({ + questionId: answer.questionId, + choiceIds: answer.choiceIds || [], + answer: answer.answer || "", + })); formData.append("requestDTO", JSON.stringify(requestDTO));