게시물 수정처럼 신규 파일을 등록하고, 기존 파일을 삭제하는 예제입니다.
- 설명
-
이미 업로드된 파일은 가상 파일을 사용하여 표현할 수 있으며, 해당 파일의 고유한 키를 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) { // 실제 서버에 업로드된 물리적 파일을 삭제하는 과정은 모든 트랜잭션이 끝난 시점에 이루어지는 것이 안전합니다. } ...
- 예제