Merge branch 'iipbs/wr/drgtPopup' into iipbs/wr/dev
This commit is contained in:
@@ -459,7 +459,7 @@ export function PbnstMngForm({
|
||||
setFiles={(files: File[] | null) => {
|
||||
if (files) fileHandler(files, "relation");
|
||||
}}
|
||||
fileTypes="PDF"
|
||||
fileTypes=".pdf"
|
||||
onFileClick={(index) => {
|
||||
fileDownLoad(
|
||||
relationfiles?.find(
|
||||
@@ -497,7 +497,7 @@ export function PbnstMngForm({
|
||||
setFiles={(files: File[] | null) => {
|
||||
if (files) fileHandler(files, "plan");
|
||||
}}
|
||||
fileTypes="PDF"
|
||||
fileTypes=".pdf"
|
||||
onFileClick={(index) => {
|
||||
fileDownLoad(
|
||||
planFiles?.find(
|
||||
|
||||
@@ -162,7 +162,7 @@ export default function PbnPrfExcelModal({
|
||||
setFiles={(files: File[] | null) => {
|
||||
if (files) setFiles(files);
|
||||
}}
|
||||
fileTypes="xlsx"
|
||||
fileTypes=".xlsx"
|
||||
maxFiles={1}
|
||||
|
||||
|
||||
|
||||
@@ -51,9 +51,9 @@ export const FileUpload =
|
||||
{files&&
|
||||
files.length > 0 &&
|
||||
files.map((file:File, i:number) => (
|
||||
<FileUploaderItem key={i} index={i} onFileClick={onFileClick }>
|
||||
<FileUploaderItem key={i} index={i} onFileClick={onFileClick }>
|
||||
<Paperclip className="h-4 w-4 stroke-current" />
|
||||
<span className="w-4/5 overflow-hidden">{file.name}</span>
|
||||
<span className="w-72 truncate">{file.name}</span>
|
||||
</FileUploaderItem>
|
||||
))}
|
||||
</FileUploaderContent>
|
||||
|
||||
@@ -79,10 +79,49 @@ export const FileUploader = forwardRef<
|
||||
const [isFileTooBig, setIsFileTooBig] = useState(false);
|
||||
const [isLOF, setIsLOF] = useState(false);
|
||||
const [activeIndex, setActiveIndex] = useState(-1);
|
||||
|
||||
// MIME 타입 매핑 함수 추가
|
||||
const getAcceptObject = (fileTypes?: string): Record<string, string[]> => {
|
||||
if (!fileTypes) {
|
||||
return { "image/*": [".jpg", ".jpeg", ".png", ".gif"] };
|
||||
}
|
||||
|
||||
// 파일 확장자 별 MIME 타입 매핑
|
||||
const extensionToMimeType: Record<string, string> = {
|
||||
".pdf": "application/pdf",
|
||||
".jpg": "image/jpeg",
|
||||
".jpeg": "image/jpeg",
|
||||
".png": "image/png",
|
||||
".gif": "image/gif",
|
||||
".doc": "application/msword",
|
||||
".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||
".xls": "application/vnd.ms-excel",
|
||||
".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
".txt": "text/plain",
|
||||
};
|
||||
|
||||
// fileTypes 문자열을 개별 확장자로 분리
|
||||
const extensions = fileTypes.split(",").map(ext => ext.trim());
|
||||
const acceptObj: Record<string, string[]> = {};
|
||||
|
||||
extensions.forEach(ext => {
|
||||
// 확장자 앞에 점(.)이 없으면 추가
|
||||
const normalizedExt = ext.startsWith(".") ? ext : `.${ext}`;
|
||||
// 매핑된 MIME 타입 찾기, 없으면 기본값 사용
|
||||
const mimeType = extensionToMimeType[normalizedExt] || "application/octet-stream";
|
||||
|
||||
if (!acceptObj[mimeType]) {
|
||||
acceptObj[mimeType] = [];
|
||||
}
|
||||
|
||||
acceptObj[mimeType].push(normalizedExt);
|
||||
});
|
||||
|
||||
return acceptObj;
|
||||
};
|
||||
|
||||
const {
|
||||
accept = {
|
||||
"image/*": acceptName?acceptName.split(",").map(extend=>("."+extend)):[".jpg", ".jpeg", ".png", ".gif"],
|
||||
},
|
||||
accept = getAcceptObject(acceptName),
|
||||
maxFiles = 1,
|
||||
maxSize = 4 * 1024 * 1024,
|
||||
multiple = true,
|
||||
@@ -208,7 +247,7 @@ export const FileUploader = forwardRef<
|
||||
}, [value, maxFiles]);
|
||||
|
||||
const opts = dropzoneOptions
|
||||
? dropzoneOptions
|
||||
? { ...dropzoneOptions, accept: getAcceptObject(acceptName) }
|
||||
: { accept, maxFiles, maxSize, multiple };
|
||||
|
||||
const dropzoneState = useDropzone({
|
||||
|
||||
Reference in New Issue
Block a user