Home > 멀티 버전 > 수정 모드
게시물 수정처럼 신규 파일을 등록하고, 기존 파일을 삭제하는 예제입니다.
설명

이미 업로드된 파일은 가상 파일을 사용하여 표현할 수 있으며, 해당 파일의 고유한 키를 vindex 속성을 사용하여 등록합니다.

즉 기존 파일을 삭제한다는 것은 가상 파일 삭제를 의미합니다.

앞의 "폼 전송" 예제와 똑같지만, submit 시점에 삭제된 가상 파일 정보를 함께 전달해 주어야 하는 차이가 있습니다.

function submit(response) {
  var formObj = document.getElementsByTagName("form")[0];
  	
  formObj.newFileKeys.value = response || "";
  
  // 삭제된 가상 파일 배열을 얻습니다.	
  var arr = dx5.get("dext5").getRemovedFiles();  
  // vindex;vindex;... 형식의 문자열을 생성하여 등록합니다.
  var deleted = arr.map(function(v) { return v.vindex; }).join(";");  
  formObj.deleteFileKeys.value = deleted || "";
	
  formObj.submit();
}

서버 측에서 최종적으로 폼 데이터를 처리할 때, 삭제된 파일에 대한 처리도 함께 해주는 것이 좋습니다.

...
String strDeleteKeys = request.getParameter("deleteFileKeys");
if (strDeleteKeys != null) {
  // 예제에서는 단순히 파일 삭제 유무만 설정했지만, 
  // 일반적으로는 연관된 DB 파일 테이블에서 대상 파일 정보를 삭제해야 합니다. 
}
...
if (strDeleteKeys != null) {
  // 실제 서버에 업로드된 물리적 파일을 삭제하는 과정은 모든 트랜잭션이 끝난 시점에 이루어지는 것이 안전합니다.
}
...
예제