파일 업로드 기능 구현 및 상세설정 연동
- 템플릿 파일첨부 컴포넌트와 FileComponentConfigPanel 실시간 동기화 - FileUpload 위젯에 전역 파일 상태 관리 기능 추가 - 파일 업로드/삭제 시 전역 상태 및 localStorage 동기화 - RealtimePreview에서 전역 상태 우선 읽기 및 파일 개수 표시 - 한컴오피스, Apple iWork 파일 형식 지원 추가 - 파일 뷰어 모달 및 미리보기 기능 구현 - 업로드된 파일 디렉토리 .gitignore 추가
This commit is contained in:
@@ -27,13 +27,43 @@ export interface FileDownloadParams {
|
||||
/**
|
||||
* 파일 업로드
|
||||
*/
|
||||
export const uploadFiles = async (files: FileList): Promise<FileUploadResponse> => {
|
||||
export const uploadFiles = async (params: {
|
||||
files: FileList | File[];
|
||||
tableName?: string;
|
||||
fieldName?: string;
|
||||
recordId?: string;
|
||||
docType?: string;
|
||||
docTypeName?: string;
|
||||
targetObjid?: string;
|
||||
parentTargetObjid?: string;
|
||||
linkedTable?: string;
|
||||
linkedField?: string;
|
||||
autoLink?: boolean;
|
||||
columnName?: string;
|
||||
isVirtualFileColumn?: boolean;
|
||||
}): Promise<FileUploadResponse> => {
|
||||
const formData = new FormData();
|
||||
|
||||
Array.from(files).forEach((file) => {
|
||||
// 파일 추가
|
||||
const fileArray = Array.isArray(params.files) ? params.files : Array.from(params.files);
|
||||
fileArray.forEach((file) => {
|
||||
formData.append("files", file);
|
||||
});
|
||||
|
||||
// 추가 파라미터들 추가
|
||||
if (params.tableName) formData.append("tableName", params.tableName);
|
||||
if (params.fieldName) formData.append("fieldName", params.fieldName);
|
||||
if (params.recordId) formData.append("recordId", params.recordId);
|
||||
if (params.docType) formData.append("docType", params.docType);
|
||||
if (params.docTypeName) formData.append("docTypeName", params.docTypeName);
|
||||
if (params.targetObjid) formData.append("targetObjid", params.targetObjid);
|
||||
if (params.parentTargetObjid) formData.append("parentTargetObjid", params.parentTargetObjid);
|
||||
if (params.linkedTable) formData.append("linkedTable", params.linkedTable);
|
||||
if (params.linkedField) formData.append("linkedField", params.linkedField);
|
||||
if (params.autoLink !== undefined) formData.append("autoLink", params.autoLink.toString());
|
||||
if (params.columnName) formData.append("columnName", params.columnName);
|
||||
if (params.isVirtualFileColumn !== undefined) formData.append("isVirtualFileColumn", params.isVirtualFileColumn.toString());
|
||||
|
||||
const response = await apiClient.post("/files/upload", formData, {
|
||||
headers: {
|
||||
"Content-Type": undefined, // axios가 자동으로 multipart/form-data를 설정하도록
|
||||
|
||||
Reference in New Issue
Block a user