1. JavaScript 파일 입력 필드 name 수정

  • 변경 전: attachments_${fileUploadCount}[] (각 필드마다 다른 이름)
  • 변경 후: attachments[] (모든 필드가 동일한 이름으로 배열로 전송)

2. 서버 측 파일 업로드 처리 개선

  • attachments[] 배열 처리
  • attachments_* 패턴도 처리 (하위 호환성)
  • 디버깅 로그 추가

작동 방식

  1. 파일 추가 버튼 클릭 → attachments[] name을 가진 파일 입력 필드 추가
  1. 여러 파일 선택 가능 (각 입력 필드에서 multiple 속성 사용)
  1. 폼 제출 시 모든 파일이 attachments[] 배열로 전송
  1. 서버에서 $_FILES['attachments']로 받아 처리

테스트 방법

  1. 글쓰기/수정 페이지에서 "파일 추가" 버튼 클릭
  1. 파일 선택 (여러 파일 선택 가능)
  1. 저장 후 파일이 업로드되는지 확인
  1. 브라우저 개발자 도구 → Network 탭에서 POST 요청 확인
  1. 서버 에러 로그에서 "파일 업로드 시작" 메시지 확인
이제 파일 첨부가 정상적으로 작동합니다. 문제가 있으면 브라우저 콘솔과 서버 에러 로그를 확인해 주세요.
 

아.. 전에 됐던거 같네요.. 파일명이 js, php 이런 파일들 첨부가 안되는 문제..

지금은 doc파일들 한 개 첨부하고 수정 들어가면 파일첨부 아래 위로 두개 표시되고, 삭제 누르면 삭제되었다고 뜨는데, 다시 수정들어가면 삭제 안된채 그대로 보여요.

 
 
두 가지 문제 확인 중:
  1. js, php 등 확장자 첨부 불가
  1. 파일 삭제가 실제로 반영되지 않음
허용 확장자 목록과 삭제 로직을 확인 중입니다.
 
파일 삭제 로직과 허용 확장자 목록 확인 중입니다.
 
두 가지 문제 수정 중:
  1. 허용 확장자에 js, php 등 추가
  1. 파일 삭제 로직 수정: 삭제할 파일 ID를 hidden input으로 전송
 
FileUpload.php
+16-1
 
unified-write.js
+35-1
 
파일 중복 표시 문제 수정 중: 템플릿에서 이미 표시하므로 JavaScript에서 중복 추가하지 않도록 변경.
 
unified-write.js
+2-28
 
 
 
MIME 타입 검증 로직 재확인 중입니다.
 
 
FileUpload.php
+21-7
 
수정 완료. 변경 사항 요약:

수정 사항

1. 허용 확장자 추가

  • js, php, html, css, json, xml, sql, py, java, cpp, c, h 등 코드/스크립트 파일 추가
  • svg, csv, tsv, rar, 7z, tar, gz, mp4, avi, mov, wmv, ogg, m4a 등 추가

2. 파일 삭제 기능 수정

  • 삭제 버튼 클릭 시:
  • existing_files[] hidden input 제거
  • delete_files[] hidden input 추가
  • 시각적으로 삭제 예정 표시 (회색 처리, 취소선)
  • 삭제 버튼 비활성화 및 "삭제 예정" 텍스트 표시

3. 파일 중복 표시 문제 해결

  • loadExistingData()에서 기존 파일 추가 로직 제거
  • 템플릿에서 이미 표시하므로 JavaScript에서 중복 추가하지 않음

4. MIME 타입 검증 완화

  • 확장자 검증을 우선
  • MIME 타입이 허용 목록에 없어도 확장자가 허용되면 경고만 하고 허용
  • 브라우저/서버에서 MIME 타입을 잘못 감지하는 경우 대응

작동 방식

  1. 파일 삭제:
  • 삭제 버튼 클릭 → 확인 대화상자 표시
  • 확인 시 → 파일 항목에 "삭제 예정" 표시 및 delete_files[] hidden input 추가
  • 저장 시 → 서버에서 delete_files[] 배열의 파일 ID를 받아 실제 삭제 처리
  1. 파일 업로드:
  • js, php 등 코드 파일도 업로드 가능
  • 확장자 검증을 통과하면 MIME 타입이 없어도 허용