달력

42024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
javascript로 파일의 크기를 알아낼 수는 있습니다.
하지만, 이 경우엔 브라우저의 보안에 걸리게 됩니다.
우선, 알아내는 방법부터 말씀을 드리지요.

var fpath = "c:\test.zip"
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(fpath);
s = f.size;
alert(s)

위와 같이 하면 알아낼 수 있습니다.
fpath에는 파일명을 포함한 파일경로가 들어가게 되구요.
file선택개체.. 즉 <input type="file"...> 을 사용하신다면
value 속성으로써 경로를 알아낼 수 있겠지요?

여기서 주의해서 보셔야 할 부분이..
fso = new ActiveXObject("Scripting.FileSystemObject"); 입니다.

이것은.. 말 그대로 File System Object로써 개체를 생성하는 구문입니다.
여기에서 바로 보안에 걸리게 됩니다.
브라우저 보안 설정에 따라 어떤 컴에서는 동작을 아예 안 하거나,
또는 경고메시지만 띄워주고 실행이 가능해지거나,
또는 경고메시지 없이 무조건 실행될 수도 있을겁니다.

아마 자신이 올리는 파일의 크기를 알아내는데 왜 보안에 걸리느냐고 여쭤보실지도 모르겠네요. ^^;

Scripting.FileSystemObject는 파일의 크기뿐만이 아니라 파일에 대한 모든 조작이 가능한 개체입니다.
따라서, 누군가가 고의로 하드의 파일을 삭제하거나 하는 스크립트를 만들어서 메일로 보내거나
자기의 홈페이지에 올려두고 누군가 접근하게 한다면..?? 어떻게 될까요? ^^;;

javascript라는게.. asp, jsp같은 서버에서 동작하는 스크립트언어가 아니라
Client에게 어떤 특정한 동작을 수행하도록 하는 언어이다 보니..
이러한 보안문제는 아주 중요한 부분입니다.


음.. 주절주절 말을 적긴 했는데 도움이 되셨을런지 모르겠군요.

그럼 즐프 하세용~



* 참! 만약에 특정 사이트를 구축하는데에 꼭 저러한 기능이 필요하시다면
ActiveX 프로그래밍을 직접 하시던지..
아니면, 클라이언트의 브라우저 보안설정에서
"신뢰할 수 있는 사이트"로써 등록을 하게 한 후에 사용하도록 하는 방법도 있을겁니다.
정말 신뢰할 수 있는 사이트라면 말이죠. ^^;;
Posted by tornado
|