728x90
반응형
넥사크로 Nexacro
17 / 17.1
파일 사이즈 체크
사전 준비
- Environment에 SandBox > filesecurelevel (파일접근레벨) 속성을 all로 변경한다.
(private 로 되어있으면 내문서에 있는 파일만 접근가능하다.)
- 처음 파일 추가 시 해당 알림이 뜨는데, 항상허용 체크박스 체크 해주고, Yes눌러준다.
샘플 파일
- 해당 샘플을 프로젝트에 import 한 후 QuickView로 실행하면, 테스트 해볼 수 있다.
파일 사이즈 체크
- 파일 업로드 컴포넌트는 내부적으로 VirtualFile을 사용하는데, 파일 크기가져오기 위해서는 getFileSize 함수를 사용해야 하고, getFileSize함수를 사용하기 위해서는 파일을 open해야 한다. 그리고 모든 요청 ( getFileSize, open, close 등)을 받기 위해서는 onsuccess 이벤트가 등록되어 있어야 한다.
- 근데 VirtualFile은 개발자가 생성하는게 아니라 파일업로드 컴포넌트 자체에서 생성되기 떄문에 파일 사이즈 체크 시 파일리스트의 VirtualFile객체를 하나씩 꺼내와서 동적으로 onsuccess이벤트를 달고, open > getFileSize 함수를 호출해줘야 한다.
this.Form_Sample_FileSize_onload = function(obj:nexacro.Form,e:nexacro.LoadEventInfo)
{
//파일선택을 여러개 할수 있도록 멀티셀렉트 속성을 true로 준다.
this.FileUpload00.set_multiselect(true);
};
this.Button00_onclick = function(obj:nexacro.Button,e:nexacro.ClickEventInfo)
{
//파일업로드 컴포넌트의 파일리스트를 for문으로 돌리면서 처리
this.FileUpload00.filelist.map(function(obj, idx){
// onsuccess 이벤트는 VirtualFile에 어떤 작업이 성공했을 때 발생하는 이벤트로,
// 어떤 이벤트든지 받으려면 일단 등록해줘야 한다.
obj.setEventHandler(
"onsuccess",
this.vfile_SizeCheckObj_onsuccess,
this
);
//파일 업로드 컴포넌트에서 몇번째 추가된 파일인지 알기위해 입력.
obj["idx"] = idx;
//파일 사이즈를 가져오려면 파일을 열어야한다.
obj.open(obj.fullpath, VirtualFile.openRead);
//파일이 열린상태에서 파일 사이즈를 가져온다.
obj.getFileSize();
}, this);
};
this.vfile_SizeCheckObj_onsuccess = function(obj, e){
//1 open() 메소드가 수행되었을 때 갖는 값입니다.
//2 close() 메소드가 수행되었을 때 갖는 값입니다.
//3 read() 메소드가 수행되었을 때 갖는 값입니다.
//4 readLine() 메소드가 수행되었을 때 갖는 값입니다.
//5 seek() 메소드가 수행되었을 때 갖는 값입니다.
//6 write() 메소드가 수행되었을 때 갖는 값입니다.
//7 remove() 메소드가 수행되었을 때 갖는 값입니다.
//8 getFileList() 메소드가 수행되었을 때 갖는 값입니다.
//9 getFileSize() 메소드가 수행되었을 때 갖는 값입니다.
//10 isExist() 메소드가 수행되었을 때 갖는 값입니다.
//11 createDirectory() 메소드가 수행되었을 때 갖는 값입니다.
//12 deleteDirectory() 메소드가 수행되었을 때 갖는 값입니다.
//13 renameDirectory() 메소드가 수행되었을 때 갖는 값입니다.
//14 copy() 메소드가 수행되었을 때 갖는 값입니다.
//15 rename() 메소드가 수행되었을 때 갖는 값입니다.
// 파일 open 함수가 요청되었을때
if( e.reason == 1) {
trace("idx-"+obj["idx"] + " = " + obj.filename + " 파일이 열림.");
}
//getFileSize, 사이즈 체크 함수가 요청되었을 경우
if( e.reason == 9 ){
trace("idx-"+obj["idx"] + " = " + "filename : " + obj.filename);
trace("idx-"+obj["idx"] + " = " + "filesize : " + e.filesize);
//구분하기 위해 구분자추가
trace("".padEnd(200, "="));
//사이즈체크 할 용도로 파일을 열었으니, 볼일이 끝났으면 닫아주자.
obj.close();
}
// 파일 close 함수가 요청되었을때
if( e.reason == 2) {
trace("idx-"+obj["idx"] + " = " + obj.filename + " 파일이 닫힘.");
}
}
샘플 확인
- QuickView로 실행하고, Find(파일추가) 버튼을 누른다.
- FileOpen 팝업이 뜨면 파일 여러개를 선택하고 열기를 눌러준다.
- 파일 업로드 컴포넌트에 파일이 추가되면 파일 사이츠 체크 버튼을 눌러준다.
- 파일 업로드 컴포넌트에 파일이 선택된 차례대로 파일이 열리고, 파일 사이즈를 가져온다.
- 열렸던 파일들이 닫히는것도 확인 할 수 있다.
728x90
반응형