넷서버의 서버상에서 클라이언트가 원하는 파일스트림을 제공할때 해당 파일이 닫히는 시점을 감지하여 원하는 작업을 처리하고자 하는 경우가 있습니다. 예를 들어 일단 임시파일로 업로드를 한 다음 업로드가 끝나면 해당 파일의 이름을 변경하거나 파일의 다운로드가 끝나고 파일이 닫히면 해당 파일이 삭제되도록 하는 경우등입니다.
하지만 넷서버의 OnGetFileService이벤트에서는 파일스트림의 할당만 할 수 있으므로 이 작업이 곤란한데 이때는 Class의 Destroy이벤트를 사용하여 감지가 가능합니다.
파일이 닫히면 해당 파일을 삭제하는 클래스
하지만 넷서버의 OnGetFileService이벤트에서는 파일스트림의 할당만 할 수 있으므로 이 작업이 곤란한데 이때는 Class의 Destroy이벤트를 사용하여 감지가 가능합니다.
파일이 닫히면 해당 파일을 삭제하는 클래스
TXFileStream = class(TFileStream)
private
FFileName: string;
public
constructor Create(const AFileName: string; Mode: Word);
destructor Destroy; override;
property Filename: string read FFileName;
end;
....
constructor TXFileStream.Create(const AFileName: string; Mode: Word);
begin
FFilename := FileName;
inherited;
end;
private
FFileName: string;
public
constructor Create(const AFileName: string; Mode: Word);
destructor Destroy; override;
property Filename: string read FFileName;
end;
....
constructor TXFileStream.Create(const AFileName: string; Mode: Word);
begin
FFilename := FileName;
inherited;
end;
destructor TXFileStream.Destroy;
begin
inherited;
//다른 원하는 작업을 추가할 수 있습니다.
DeleteFile(FFileName);
end;
begin
inherited;
//다른 원하는 작업을 추가할 수 있습니다.
DeleteFile(FFileName);
end;
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 이전게시판의 질문과답변 및 사용팁 메뉴얼관련 링크 | admin | 2008.01.23 | 5179 |
공지 | 넷서버 동영상 강좌 | admin | 2008.01.23 | 3915 |
공지 | 넷서버 소개문서 | 넷서버 | 2008.01.19 | 5116 |
8 | ch 1. 간단한 BDE서버의 제작 | admin | 2008.01.24 | 4004 |
7 | DLL과 Deadlock | admin | 2008.01.20 | 6361 |
» | 파일업로드나 다운로드후 파일이 닫힐때 원하는 작업처리하기 | admin | 2008.01.19 | 2682 |
5 | Integate를 사용하지 않은 다른 로드밸런스 구현 방법(4tier) | 넷서버 | 2008.01.19 | 2032 |
4 | Synchronize 쉽게 사용하기 | admin | 2008.01.19 | 3962 |
3 | 로드밸런스의 라이센스 배포와 관련하여 | 넷서버 | 2008.01.19 | 1747 |
2 | Intergate 로드밸런스 서버 | 넷서버 | 2008.01.19 | 1689 |
1 | 넷서버의 엔터프라이즈환경에서의 사용 방식의 개선 | 넷서버 | 2008.01.19 | 1831 |