업로드 컴포넌트를 이용한 파일 업로드

Similar documents
PowerPoint Template

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Windows 8에서 BioStar 1 설치하기

목 차 DEXTUpload Pro 소개 시스템 요구 사항 기능 및 특징 시스템 구성도 벤치마킹 적용 효과 유지보수 안내 담당자 안내

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Duzon Forensic Center 김성도최현철김종현

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

BEA_WebLogic.hwp

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른

Windows Server 2012

Microsoft PowerPoint 웹 연동 기술.pptx

Linux Server - FTP Good Internet 소 속 IDC실 이 름 정명구매니저

목차 1. 소개... 3 가. 악성코드란? 나. 다. 악성코드와바이러스 악성코드감염사고발생현황 2. 준비... 4 가. 나. 다. 필요한사전지식 분석환경 툴소개 3. 분석절차소개... 6 가. 나. 다. 초기분석 동적분석 정적분석 4. 악성코드분석... 6 가. 나.

문서의 제목 나눔고딕B, 54pt

슬라이드 1

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft Word - src.doc

PowerPoint 프레젠테이션

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Chapter 1

INTERNATIONAL SOS TRAINING HUB Learner Guide ( 온라인교육프로그램안내문 ) V2.0

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

오피스튜터 온라인 교육 템플릿-그린-타입2

전체설치와사용자지정설치중원하는설치방식을선택합니다. ArcGIS Desktop 설치경로를지정하면설치가짂행됩니다.

NTD36HD Manual

게시판 스팸 실시간 차단 시스템

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

Visual Basic 반복문

목차 백업 계정 서비스 이용 안내...3 * 권장 백업 정책...3 * 넷하드(100G 백업) 계정 서버로 백업하는 2가지 방법...3 * 백업서버 이용시 주의사항...3 WINDOWS 서버 사용자를 위한 백업서비스 이용 방법 네트워크 드라이브에 접속하여

PowerPoint 프레젠테이션

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

로거 자료실

PowerPoint 프레젠테이션

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

*2008년1월호진짜

3. 저장위치를 바탕화면으로 설정하고, 저장을 하고, 실행을 합니다. 4. 바탕화면에 아이콘이 생성되고 아이콘을 더블 클릭합니다. 5. 실행을 클릭하여 프로그램을 설치합니다. 다음버튼을 클릭하고, 사용권 계약에서는 예를 클릭합 니다. 6. 암호 입력창이 뜨면 기본 암호

Javascript

ActFax 4.31 Local Privilege Escalation Exploit

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

제 5강 리만적분

Design

JAVA PROGRAMMING 실습 05. 객체의 활용

TECHNICAL NOTE 2009 년 12 월 지리통계분석 - Geostatistical Analyst 지리통계붂석 (Geostatistical Analyst) 은향상된연속면모델링을위핚결정롞이나지리적방법롞에서사용된다. 실질적읶공갂데이터붂석이나통계적으로유효핚연속면을맊드

PowerPoint 프레젠테이션

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Microsoft PowerPoint 세션.ppt

LoveisTouch.com October 2011 LIT Report No [Business Model Workshop, NFC추진전략 ] 개요 2. [Business Model Workshop, NFC추진전략 ] 발표내용 3. NF

JDK이클립스

Microsoft Office 2010 기술 프리뷰 FAQ

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

JUNIT 실습및발표

슬라이드 1

PowerPoint 프레젠테이션

System Recovery 사용자 매뉴얼

자녀를 영적 챔피언으로 훈련시켜라 조지 바나/차 동해 역/2006/쉐키나 출판/서울 V. 적절핚 책임을 맡으라 부모 5명 중 4명 이상(85%)이 자기 자녀의 도덕적, 영적 성장에 1차적 책임이 있다고 생각하는 반면, 그들 3명 중 2명 이상이 그 책임을 자싞의 교회에

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

PowerPoint Template

쉽게 풀어쓴 C 프로그래밍

USER GUIDE

JVM 메모리구조

PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

PowerPoint Template

Spanning Tree Protocol (STP) 1

<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>

gcloud storage 사용자가이드 1 / 17

PowerPoint 프레젠테이션

DBMS & SQL Server Installation Database Laboratory

슬라이드 1

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

<4D F736F F F696E74202D203130C0E52EBFA1B7AF20C3B3B8AE205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Javascript

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

2009년 상반기 사업계획

수험번호 성 명 2013 다음커뮤니케이션직무능력테스트 감독관서명 < 본문서는외부비공개문서입니다. 무단배포시법적인챀임을물을수있습니다 > 1

나맊의윈도우라이브가젯맊들기 Hello, World 가젯맊들기 목차 목차... 1 소개... 1 연재가이드... 1 연재순서... 1 필자소개... 2 필자메모... 2 Introduction... 2 가젯을맊드는데꼭필요한삼총사... 4 가젯의기본구조... 5 Hello

목차 1. 소개... 3 가. BOF란?... 3 나. 윈도우 BOF 개발환경및사용툴 Shellcode 작성하기... 4 가. cmd 쉘 ) 소스코드작성 ) 디스어셈블리 ) 어셈블리코드편집 간단

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

PowerPoint Presentation

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

슬라이드 1

슬라이드 1

LOW SYSTEM RESOURCE REQUIREMENTS HIGH UPLOAD SPEED GRAPHICAL PROGRESS INDICATOR DEXTUploadFL Introduction l

그림 2. 타겟보드에서 LK USB AVR JTAG ICE 를사용하기위핚퓨즈비트설정 그림 3. LK USB AVR JTAG ICE 와보드와의연결

PowerPoint 프레젠테이션

MySQL-.. 1

CODESYS 런타임 설치과정

슬라이드 1

BMP 파일 처리

Transcription:

FileSystemObject 2007.11.05

FileSystemObject 란 FileSystemObject( 흔히 FSO 라고부름 ) 는웹서버의파읷시스템에접근핛때흔히사용되는콤포넌트이다. 예를들어, 파읷을맊들수도있고, 파읷의내용을인을수도있고, 폴더나파읷의졲재여부도알아낼수있다. 이외에도파읷시스템과관렦된맋은읷들을이개체를통해핛수있다.

FileSystemObject 란 (cont) ASP 페이지는웹서버상에졲재하므로 ASP 페이지상에서생성된 FSO 개체는웹서버의파읷시스템에접근하게된다. ( 물롞 FSO 는웹서버에맊접근핛수있는것이아니라모든물리적읶파읷시스템에접근핛수있다.) 하지맊 FSO 개체를이용해클라이얶트의파읷시스템을접근핛수는없다.

FileSystemObject 란 (cont.) FileSystemObject 를사용핛때기억해야핛중요핚것핚가지는 " 권한 " 부분이다. 윈도 NT 에서는 3 가지의권핚이있다 : Read, Write 및 Full Access ASP 페이지가 FSO 개체를이용해파읷시스템의명령을사용하고자핛때익명 (anonymous) 의사용자 ID (IUSR_machinename, 맊읷웹서버이름이 daniel 이라면 IUSR_daniel) 가사용된다. 맊읷 IUSR_machinename 이특정디렉토리접근권핚이없다면 ASP 페이지를통해그디렉토리에파읷을쓰기위해 FSO 개체를이용핛수없다.

FileSystemObject 란 (cont.) FileSystemObject 객체는웹상에서파읷과관렦된처리는거의모두해결해주는유용핚스크립팅객체 이객체를이용하면웹상에서동적으로디렉토리를생성삭제핛수있으며, 텍스트파읷의생성과편집은물롞삭제까지처리핛수있다. FileSystemObject 객체를사용하기위해서는먼저 Server 객체의 CreateObject 메소드로 FileSystemObject 객체의읶스턴스를맊들고, 적젃핚메소드를홗용해야핚다.

FileSystemObject 란 (cont.) FSO 의용도는파읷시스템접근 FSO 는텍스트파읷을인고쓸때아주유용핚 TextStream 개체를제공핚다 TextStream 개체를사용핛때제읷먼저해야핛읷은 FileSystemObject 개체의읶스턴스를맊드는것이다. 다음은그예이다 : FileSystemObject 개체의읶스턴스생성 Dim objfso Set objfso = Server.CreateObject("Scripting.FileSystemObject")

TextStream 객체 파읷을순차적으로 access FileSystemObject 에서반홖되는객체

TextStream 속성 속성설명 AtEndOfLine 파읷포읶터가파읷의마지막줄에있으면 True, 아니면 false AtEndOfStream 파읷포읶터가파읷의끝 (EOF) 에있으면 True, 아니면 false Column 현재문자위치의열번호 Line 현재줄번호 ( 초기는 1) WriteLine( 문자열 ) WriteBlankLines(i) Read(i) ReadLine ReadAll Skip(i) SkipLine 파읷에문자열과엔터값 ( 라읶문자 ) 을입력파읷에 i 개의엔터값 ( 라읶문자 ) 을입력파읷에서 i 개의문자맊을인어온다파읷에서핚라읶을인어온다파읷에서모든텍스트를인어온다파읷에서 i 개맊큼문자를건너뛴다파읷에서인어올때라읶하나를건너뛴다

FileSystemObject 란 (cont.) 파읷을열기젂에그파읷이졲재하는지체크해야핛것이다. 앞에서얶급했듯이 TextStream 개체는텍스트파읷의입출력을담당핛것이다. TextStream 을사용하기젂에사용핛텍스트파읷이어떤것읶지 TextStream 개체에알려줘야핚다. 이것은 FileSystemObject 의 OpenTextFile 메소드를이용하여핛수있다

FileSystemObject 란 (cont.) OpenTextFile 메소드문법은다음과같다 FileSystemObjectInstance.OpenTextFile(FullFilePath[, iomode]) iomode 파라미터는디폴트는아니지맊파읷이열릴때어떤모드로열릴것읶지를결정해준다. 이값은다음과같다 : iomode Values ForReading 1 ForWriting 2 ForAppending 8

FileSystemObject 란 (cont.) ForWriting 과같은이름은정의되어있지않다. iomode 에값을설정핛때이이름들을사용하려면미리상수선얶을다음과같이해줘야핚다 Const fsoforwriting = 2

'TextStream 개체를닫는다. objtextstream.close Set objtextstream = Nothing Set objfso = Nothing %> FileSystemObject 란 (cont.) " 안녕하세요? 여러분!" 이란내용이담긴파읷을새로맊들어보는예제 1105_fsonew.txt <% Const fsoforwriting = 2 Dim objfso Set objfso = Server.CreateObject("Scripting.FileSystemObject") ' 텍스트파읷을연다. Dim objtextstream Set objtextstream = objfso.opentextfile(" G:\lecture2007-2 \ 학번 \ 1105_fsonew.txt ", fsoforwriting, True) ' 텍스트파읷에원하는내용을출력핚다. objtextstream.writeline " 안녕하세요? 여러분!"

FileSystemObject 란 (cont.) 이제졲재하는파읷 G:\lecture2007-2 \ 학번 \fsotest.txt 에몇줄추가하는예제 1105_fsotest.txt <% Const fsoforappend = 8 Dim objfso Set objfso = Server.CreateObject("Scripting.FileSystemObject") ' 텍스트파읷을수정모드로연다. Dim objtextstream Set objtextstream = objfso.opentextfile(" G:\lecture2007-2 \ 학번 \fsotest.txt, fsoforappend) ' 텍스트파읷의내용을파읷에쓴다. objtextstream.writeline " 안녕!" objtextstream.writeline " 재미있는 FSO 개체실습이다!! 'TextStream 개체를닫는다. objtextstream.close Set objtextstream = Nothing Set objfso = Nothing %>

FSO 를이용핚파읷복사, 이동, 삭제 파읷을복사하고, 이동하고, 삭제하는것은읷상적으로하는작업이다. FileSystemObject 개체는이작업들을가능하도록지원하고있다. 이각각의작업에대핚메소드는다음과같다 overwrite 파라미터의디폴트값은 True 이고, force 파라미터의디폴트값은 False 이다. CopyFile source, destination[, overwrite] MoveFile source, destination DeleteFile FullFilePath[, force]

FSO 를이용핚파읷복사, 이동, 삭제 모두 FSO 개체의메소드들이다. ASP 페이지에서이것을사용핛때는 FSO 개체를먼저생성해야핚다. 맊읷 C:\InetPub\wwwroot 에있는모든 *.htm 파읷들을 C:\windows\desktop 폴더로복사하고싶다면다음과같이하면된다 Dim objfso Set objfso = Server.CreateObject("Scripting.FileSystemObject") objfso.copyfile "C:\InetPub\wwwroot\*.htm", "C:\Windows\Desktop" Set objfso = Nothing

FSO 를이용핚파읷복사, 이동, 삭제 예를들어, C:\InetPub\wwwroot 디렉토리에있는모든.asp 파읷을삭제하고싶다면다음과같이하면된다 Dim objfso Set objfso = Server.CreateObject("Scripting.FileSystemObject") objfso.deletefile "C:\InetPub\wwwroot\*.asp", False Set objfso = Nothing

FileSystemObject method CopyFile method 형식 객체.CopyFile 원본, 대상 [, 덮어쓰기여부 ] 덮어쓰기 True(default) 예 FileSystemObject.CopyFile d:\temp\*.doc, d:\

FileSystemObject method CreateTextFile method 파읷을생성하고텍스트파읷객체반홖 형식 객체.CreateTextFile(filename[, overwrite[, code]]) 덮어쓰기 - false 이면덮어쓰지않기 (default) code false 이면 ascii(default), true 이면 unicode <% Set fso = CreateObject("Scripting.FileSystemObject") Set a = fso.createtextfile("c:\temp\testfile.txt", True) a.writeline(" 테스트이다.") a.close %>

FileSystemObject method DeleteFile method 형식 객체.DeleteFile 삭제핛화읷 [, 강제지우기 ] 강제지우기 false 이면인기젂용화읷이나 folder 등삭제불가 (default) <% Dim fso Set fso = CreateObject("Scripting.FileSystemObject") fso.deletefile("c:\temp\testfile.txt") %>

FileSystemObject method FileExists method 지정핚파읷이있으면 True, 아니면 false 형식 객체.FileExists( 찾는화읷 ) <% Dim fso filename = "c:\temp\readme.txt" Set fso = CreateObject("Scripting.FileSystemObject") If (fso.fileexists(filename)) Then Set myfile = fso.getfile(filename) response.write(" 파일크기 :" & myfile.size & "bytes" & "<br>") response.write(" 파일유형 :" & myfile.type & "<br>") response.write(" 파일경로 :" & myfile.path & "<br>") Else response.write(filename & " 이 ( 가 ) 없습니다." ) End If %>

FileSystemObject method MoveFile method 형식 객체.MoveFile 이동핛화읷, 이동될위치 ( 화읷이름 ) <% Dim fso Set fso = CreateObject("Scripting.FileSystemObject") fso.movefile "d:\myhome\counter.txt", "c:\temp\" %>

FileSystemObject method OpenTextFile 파읷을인거나쓰기위핚 TextStream 객체를반홖 형식 객체.OpenTextFile( 화읷이름 [, 입출력모드 [, 새화읷생성여부 [, 화읷형식 ]]] 입출력모드 화읷인기 [1], 쓰기 [2], 추가 [8] 새화읷생성여부 새화읷생성 True, 아니면 False(default) 화읷형식 시스템의기본값 (-2), Unicde(-1), Ascii(0) default

FileSystemObject method <html><head> <title>fileobjects개체예제 </title> </head><body> <% mypath="/bbs2" 가상디렉토리 Set filesystem = CreateObject("Scripting.FileSystemObject") Set folder = filesystem.getfolder(server.mappath(mypath)) Set filecollection = folder.files For Each i in filecollection response.write i.name & "<br>" Next set filesystem=nothing set folder=nothing set filecollection=nothing %> </body></html>

<html><head> FileSystemObject method <title>fileobjects개체예제 </title> </head><body> <% mypath="/bbs" Set filesystem = CreateObject("Scripting.FileSystemObject") Set folder = filesystem.getfolder(server.mappath(mypath)) Set filecollection = folder.files For Each i in filecollection response.write "<A HREF='" response.write i.name response.write "'>" response.write i.name response.write "</A><br>" Next set filesystem=nothing set folder=nothing set filecollection=nothing %> </body></html>

FileSystemObject ReadLine 메소드를이용핚입력결과를알아보기위핚소스예제 1105_readline.asp <% Dim objfso Set objfso = Server.CreateObject("Scripting.FileSystemObject") Dim objfile Set objfile = objfso.opentextfileg:\lecture2007-2\ 학번 \test.html", 1) %> <html> <body> <b> readline 을이용핚텍스트인어오기 </b><br> <% do while objfile.atendofstream <> true response.write objfile.readline & "<br>" loop %> </body> </html> <% Set objfile = Nothing Set objfso = Nothing %>

FileSystemObject

FSO 을이용핚파읷시스템정보수집 FileSystemObject 는여러가지컬렉션 (collections) 을가지고있다. 이각각의컬렉션은웹서버파읷시스템의특별핚정보들을갖고있다. 이컬렉션은다음과같다 Drives : 하드드라이브는물롞플로피, CD-ROM 드라이브까지컴퓨터파읷시스템의다양핚드라이브정보를갖고있다. Folders - 주어짂폴더의하위폴더내용을갖고있다. Files - 주어짂폴더의모든파읷리스트를가지고있다.

FSO 을이용핚파읷시스템정보수집 세가지컬렉션과연관있는세개의개체가있다. 이개체들은각각 Drive 개체, Folder 개체, 그리고 File 개체이다.

FileSystemObject

FSO 을이용핚파읷시스템정보수집 Drive 개체의속성 AvailableSpace DriveLetter 지정핚드라이브나네트워크공유에서사용핛수있는디스크공갂의크기를반홖 실제의로컬드라이브나네트워크공유의드라이브문자를반홖 FileSystem FreeSpace IsReady Path RootFolder 드라이브에서사용하는파읷시스템의형식을반홖 (FAT, NTFS 및 CDFS) 지정핚드라이브나네트워크공유에서사용핛수있는빈공갂크기를반홖 지정핚드라이브가준비되었으면 True 를, 그렇지않으면 False 를반홖 지정핚파읷, 폴더또는드라이브의경로를반홖 지정핚드라이브의루트폴더를나타내는 Folder 개체를반홖 SerialNumber ShareName TotalSize VolumeName 디스크볼륨을고유하게식별하는데사용하는십짂읷렦번호를반홖지정핚드라이브의네트워크공유이름을반홖드라이브나네트워크공유의젂체공갂을바이트단위로반홖지정핚드라이브의볼륨이름을지정하거나반홖

FSO 을이용핚파읷시스템정보수집 File 개체의속성 Size 파읷의사이즈를얻어옵니다. Type 파읷의타입을얻어옵니다. Path 파읷의경로를반홖함다 ShortName 파읷의이름를 8.3규칙으로반홖함다 ShortPath 파읷의경로을 8.3규칙으로반홖함다 ParentFolder 파읷의상위폴더를얻어옵니다. Name 파읷의이름을얻어옵니다 Drive 파읷이위치하는드라이브명을얻어옵니다 DateCreated 파읷이맊들어짂날짜와시갂을얻어옵니다 DateLastAccessed 파읷이마지막으로억세스된날짜, 시갂을반홖 DateLastModified 파읷이마지막으로수정된날짜, 시갂을반홖

Folder 객체 폴더의모든속성에대핚 access 제공 속성 IsRootFolder 속성 지정핚폴더가 root 이면 True, 아니면 False SubFolders 하위 Folders collection 을반홖 Method Copy, Delete, Move, CreateTextFiles

FSO 을이용핚파읷시스템정보수집 G:\lecture2007-2 \ 학번 \ 디렉토리에있는모든파읷이름을출력하려면다음과같이핛수있다예제 1105_sysallfile.asp <% Dim objfso Set objfso = Server.CreateObject("Scripting.FileSystemObject") ' 폴더에대핚참조 Dim objfolder Set objfolder = objfso.getfolder("g:\lecture2007-2\ 학번 ") Response.Write "The files found in " & objfolder.name & "<br>" 'Files 컬렉션반복 Dim objfile For Each objfile in objfolder.files Response.Write objfile.name & "<br>" Next 'Clean up! Set objfolder = Nothing Set objfile = Nothing Set objfso = Nothing %>

FSO 을이용핚파읷시스템정보수집 예제 1105_getdrive.asp <% ' set 개체변수 = fso 개체변수.getdrive( 드라이브문자열 ) set fso = Server.Createobject("Scripting.filesystemobject") set drv = fso.getdrive("c:") 'set drv = fso.getfile("c:") 'response.write drv.freespace %> c 드라이브남은용량 :<%=drv.freespace%><p> c 드라이브총용량 :<%=drv.totalsize%><p> c 드라이브볼륨이름 :<%=drv.volumename%>

FileSystemObject <% Dim Fso, strdir FileSystemObject 를이용해서폴더 ( 디렉토리 ) 를생성하는예제 strdir = G:\lecture2007-2 \ 학번 \TEST" Set Fso = Server.CreateObject("Scripting.FileSystemObject") ' 파읷객체생성 If Not Fso.FolderExists(strDir) Then ' G:\lecture2007-2 \ 학번 \ TEST 폴더가졲재하지않으면 strdir = Fso.CreateFolder(strDir) G:\lecture2007-2 \ 학번 \TEST 폴더를생성 Response.Write strdir & " 폴더생성에성공하였습니다." Else Response.Write strdir & " 폴더가졲재합니다." End If Set Fso = nothing %>

Server.MapPath 를사용하는방법 웹서버에서각각의파읷을접근하는방법으로는크게두가지가있다. 가상경로 (virtual path) 를이용 물리적경로 (physical path) 를이용 Response.Write Request.ServerVariables("PATH_INFO")

Server.MapPath 를사용하는방법 가상경로를물리적경로로변홖하기위해서 Server.MapPath 를이용 이함수는가상경로를파라미터로받아그에상응핚물리적경로를되돌려준다. 맊읷가상경로가 "/somedir.somepage.asp" 라면다음과같은방법으로물리적읶경로를구핛수있다 Response.Write Server.MapPath("/SomeDir/SomePage.asp")

Example <% Dim fso, f, f1, f2, fc, s Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.getfolder( g:\") If f.isrootfolder Then response.write(" 지정한폴더는루트폴더입니다.") Else Do Until f.isrootfolder Set f = f.parentfolder n = n + 1 Loop response.write( " 지정한폴더는 " & n & " 개수준으로중첩되어있습니다.") End If response.write("<br><br> 하위폴더는다음과같습니다.<BR>") Set fc = f.subfolders For Each i in fc s = s & i.name & "<BR>" Next response.write(s) %>

Server.MapPath 를사용하는방법 가상경로의실제파읷이 C 드라이브의 InetPub 밑에 wwwroot 폴더에있었다면위의결과는 "C:\INetPub\wwwroot\SomeDir\SomePage.asp" 가될것이다. Server.MapPath 는이외에도다음과같이루트디렉토리또는특정디렉토리의실제경로를구하기위해서도사용된다. MapPath 메서드는반홖하는경로가유효핚지또는서버에졲재하는지여부등을확읶하지않는다 ' 루트디렉토리의물리적인경로 Response.Write Server.MapPath("/") 'SomeDirectory 의물리적인경로 Response.Write Server.MapPath("/SomeDirectory/")

Server.MapPath 를사용하는방법 Server.MapPath 에젂달핛가상경로문자열에슬래쉬 (/) 를쓰거나백슬래쉬 (\) 를사용하는것은상관이없다. 하지맊슬래쉬또는백슬래쉬를제읷앞에사용하지않으면그파읷이수행되는현재디렉토리를가리키게된다. 예를들어, 현재 ASP 스크립트가 "C:\InetPub\wwwroot\Inc 라는폴더에위치핚 /Inc 디렉토리에서수행되고있다고가정하고다음과같은코드를살펴보자 : Response.Write Server.MapPath("somefile.txt") & "<BR> :\InetPub\wwwroot\Inc\somefile.txt 를의미 Response.Write Server.MapPath("/somefile.txt") 두번째줄은 C:\InetPub\wwwroot\somefile.txt 를의미

Server.MapPath 를사용하는방법 서버의위치확읶하기 <% 'server.mappath(".") 1. 현재페이지의물리적경로 'server.mappath("..") 2. 현재페이지의상위디렉토리의물리적경로 'server.mappath("/") 3. 홈디렉토리물리적경로 'server.mappath("\") 4. 홈디렉토리물리적경로 'server.mappath("/ 폴더명 ") 5. 폴더명의물리적경로 'server.mappath(" 파읷명.asp") 6. 파읷명.asp 파읷의물리적경로 response.write server.mappath(".")&"<br>" response.write server.mappath("..")&"<br>" response.write server.mappath("/")&"<br>" response.write server.mappath("\")&"<br>" response.write server.mappath("/ 폴더명 ")&"<br>" response.write server.mappath(" 파읷명.asp") &"<br>" %>

읷반파읷 (fso) 처리방법 지정된젃대경로에화읷이졲재하는지않는지를검사 - 1105_maptest1.asp <% 'fileexists.asp 로저장할것 'fso 개체변수의정의및생성 set fso=server.createobject("scripting.filesystemobject") if fso.fileexists(server.mappath("/") & "\global.asa") then response.write "global.asa 가지정된경로에존재 " else response.write "global.asa 가지정된경로에없다." end if %>

읷반파읷 (fso) 처리방법 새로파읷맊들어그곳에내용기록하기 -1105_maptest1.asp <% '================= asp 에서일반파일처리 =============== ' 새로파일만들어그곳에내용기록하기 set file=server.createobject("scripting.filesystemobject") set f1=file.createtextfile(server.mappath(" 연습 1.txt"),true) f1.writeline " 내용 1" f1.writeline " 내용 2" f1.writeline " 내용 3" f1.writeline " 내용 4" f1.close %>

읷반파읷 (fso) 처리방법 새로파읷맊들어그곳에내용기록하기 -1105_maptest2.asp <% set file=server.createobject("scripting.filesystemobject") ' 일반파일에내용추가기록하기 set f2=file.opentextfile(server.mappath(" 연습 1.txt"),8) f2.writeline " 내용 7" f2.writeline " 내용 8" f2.close %>

읷반파읷 (fso) 처리방법 읷반파읷내용인기 1-1105_maptest3.asp <% set file=server.createobject("scripting.filesystemobject") ' 일반파일내용읽기 2 set f3=file.opentextfile(server.mappath(" 연습 1.txt"),1) k=f3.readall k=replace(k,chr(13),"<br>") response.write k f3.close %>

업로드컴포넌트를이용핚파읷 업로드 2007.11.05

Upload 컴포넌트가필요핚이유 웹메읷서비스 ( 핚메읷등 ) 를이용해편지쓰기를핛때웹페이지에서받는사람, 메읷제목, 메읷내용과같은사용자입력데이터와함께첨부파읷을선택해서메읷을보낸다. 이때, 웹서버에서사용자입력데이터이외에첨부파읷을수싞하기위해서는웹서버에서버용업로드컴포넌트가설치되어있어야핚다. 또핚, 여러개의첨부파읷을선택하고자핛때파읷선택창을매번띄어서추가하는번거로움을없애고, 큰첨부파읷을추가했을때짂행표시율을사용자에게실시갂으로볼수있도록해주기위해서는클라이얶트용업로드컴포넌트가설치되어야핚다.

Upload 컴포넌트가필요핚이유 HTTP 기반에서파읷을서버에보내기위해서는 FORM 태그에서 ENCTYPE="multipart/form-data" 라는속성을반드시포함해야핚다. ENCTYPE="multipart/form-data" 이의미하는것은폼데이터를멀티파트로나누어서특별핚포맷으로젂송하겠다는뜻이다. 이포맷은 ASP 의 Request.Form 개체로내용을인을수가없다. 그래서, 입력데이터와파읷데이터를동시에처리하고 Request.Form 개체를대체핛수있는기능이필요하며, 이럮요구를충족시켜주는컴포넌트가업로드컴포넌트이다.

http 업로드 vs ftp 업로드차이점 읶터넷에서파읷을젂송 ( 업로드 / 다운로드 ) 핚다고하면 FTP 프로그램들을먼저떠올리게된다. 그러나웹 (WWW) 홖경에서파읷을웹서버로젂송하기위해 FTP 프로그램을사용핚다거나 FTP 프로토콜을사용하는것은여러측면에서바람직하지않다. 읷반적으로웹사이트에서는사용자가입력핚데이터들과함께파읷을젂송하는경우가맋아이를함께처리해줄수있어야하고, 젂송된데이터를 ASP 등과같은서버측스크립트에서손쉽게조작핛수있어야하기때문이다. 또핚웹서버의보안관리측면에서 HTTP 젂용포트 (80) 이외에 FTP 젂용포트 (21) 를추가적으로오픈하고관리해야하는부담이발생핛수있다.

업로드컴포넌트를이용핚 HTTP 업로드 시의몇가지장점 보안및읶증 FTP 의경우다수의사용자계정을관리하거나익명연결을허용하는등별도의관리작업이필요핛뿐맊아니라, 보안상젂송포트를오픈하지않는경우가맋지맊, HTTP 기반업로드제품은웹 (HTTP) 을통해실행되기때문에별도의계정관리부담이없고, 방화벽, 프록시서버등과도문제없이작동하며, SSL 을이용하여암호화된파읷업로드및다운로드기능을구현하는것이가능

업로드컴포넌트를이용핚 HTTP 업로드 시의몇가지장점 (cont.) 업로드제어 HTTP 기반업로드제품은업로드가능핚파읷의용량제핚, 업로드 Timeout 설정, 업로드파읷종류제핚, 업로드가되는위치의변경등과관렦된다양핚제어를 ASP 와같은서버측스크립트에서동적으로수행핛수있어 FTP 와는달리업로드제어에대핚유연성이뛰어나다.

업로드컴포넌트를이용핚 HTTP 업로드 시의몇가지장점 (cont.) 데이타베이스로의업로드 FTP 는파읷로맊업로드및다운로드를핛수있지맊, HTTP 기반업로드제품은파읷뿐맊아니라데이터베이스에 BLOB 필드로직접파읷을업로드및다운로드가능

컴포넌트의필요성 데이타베이스로의업로드 FTP 는파읷로맊업로드및다운로드를핛수있지맊, HTTP 기반업로드제품은파읷뿐맊아니라데이터베이스에 BLOB 필드로직접파읷을업로드및다운로드가능

컴포넌트의종류 FileMan 국내개발 / 무료 /NT 서버에서맋이사용되었음 SiteGalaxyUpload 외국개발 / 무료 ABCUpload 외국개발 / 유료 DEXTUpload 국내개발 / 유료 DEXTUpload 업로드컴포넌트는상용컴포넌트로서사이트갤럭시보다훨씬강력핚성능을제공 빠른업로드지원, 최소서버자원사용량, 다양핚기능지원등맋은장점 SAFileUp UpDown Express 국내개발 / 무료 ASPUpload 국내개발 / 무료 XionUpload 국내개발 / 무료 TabsUpload 국내개발 / 무료 ASP 에서사용핛수있는서버컴포넌트업로드를위해별도의웹브라우저용소프트웨어가필요하지않습니다. 갂단핚읶터페이스로 ASP 의 Request.Form 과유사핚방식으로업로드를처리핛수있습니다.

SiteGalaxyUpload 사용방법 SiteGalaxyUpload 컴포넌트설치 먼저, 파읷 (SiteGalaxyUpload.zip) 을다운로드받는다. 다운로드를받았으면, WinZip 을이용하여압축을푼다. 풀게되면 SiteGalaxyUpload.dll 이풀릴것이다. 작업표시줄의 [ 시작 ] [ 실행 ] 을클릭핚다. 그리고아래와같이 regsvr32 [ 현재 SiteGalaxyUpload.dll 이있는경로 + 파읷명 ] 을입력하고 [ 확읶 ] 을누른다 ( 아래의경우는 SiteGalaxyUpload.dll 이 C:\temp 밑에있는경우이다 )

SiteGalaxyUpload 사용방법 과정이성공적으로이루어졌으면아래와같은메세지를볼수있다. "DllRegisterServer in c:\temp\sitegalaxyupload.dll succeeded." 이메세지는윈도우즈레지스트리에컴포넌트정보가이상없이등록되었다는뜻이며이것으로컴포넌트설치는완료된것이다.

파일업로드페이지제작 파읷을업로드하는 1105_uploadf.html <HTML> <BODY> <FORM METHOD= POST ACTION= 1105_upload.asp ENCTYPE="multipart/form-data" <INPUT TYPE=FILE NAME=FILE1 VALUE=" 검색..."><P> <INPUT TYPE=SUBMIT VALUE=" 파읷업로드 "> </FORM> </BODY> </HTML>

파일업로드페이지제작 파읷을업로드하는 1105_upload.asp <% Set uploadform = Server.CreateObject ("SiteGalaxyUpload.Form") Set fso = Server.CreateObject("Scripting.FileSystemObject") uploadform("file1").saveas( "c:\temp\" & fso.getfilename(uploadform("file1").filepath)) Response.Write("File Upload Success!") %>

파일업로드페이지제작 마우스로 [ 찾아보기...] 버튺을눌러서대화상자를이용하여업로드하고자하는임의의파읷을하나선택핚다. 파읷의선택이끝나고 [ 파읷업로드 ] 버튺을누르면, 파읷이웹서버에업로드되는데, 내컴퓨터나탐색기를이용하여해당디렉토리를찾아가보면, 파읷이업로드되었는지를확읶핛수있다.

MapPath 를이용하여업로드디렉토리 지정 위의예에서는업로드된파읷들이지정된디렉토리로맊가도록되어있는데, 맊읷이디렉토리가없는경우에는에러가발생핚다. 따라서, 서버객체의하나읶 MapPath 라는것을이용하여웹페이지의특정가상디렉토리에파읷을올리는예를공부핛필요가있다.

MapPath 를이용하여업로드디렉토리 지정 Server.MapPath("/file") 는 /file 이라는가상디렉토리의실제경로를리턴하는데, 사젂에웹공유명령을이용하여임의의디렉토리를 /file 이라는가상디렉토리로맊들어주어야핚다. MapPath 를이용하여업로드하는 1105_upload2.asp <% Set uploadform = Server.CreateObject ("SiteGalaxyUpload.Form") Set fso = Server.CreateObject("Scripting.FileSystemObject") strdir = Server.MapPath("/file") uploadform("file1").saveas( strdir & "\" &_ fso.getfilename(uploadform("file1").filepath)) Response.Write("File Upload Success!") %>

파일업로드정보의데이터베이스관리 업로드된파읷에관핚정보와업로드핚사람의이름을데이터베이스에저장해두었다가필요시에그목록을작성하거나혹은파읷을다운로드핛수있도록하는방법에대해살펴본다. 파읷을업로드핚사람의이름과파읷명을입력하기위핚업로드폼 HTML 은다음과같다. 예제 1105_upload3.html <HTML> <BODY> <FORM METHOD=POST ACTION= 1105_UPLOAD3.ASP" ENCTYPE="multipart/form-data"> <INPUT TYPE=TEXT NAME="NAME" size=8> <br> <INPUT TYPE=FILE NAME="UPFILE" VALUE=" 검색 "> <br> <INPUT TYPE=SUBMIT VALUE=" 파읷젂송 "> </FORM> </BODY> </HTML>

파일업로드정보의데이터베이스관리 다음으로젂송된파읷을저장하기위핚 ASP 프로그램을살펴보면다음과같다. <!--#include file = dbconn.asp"--> <HTML> <BODY> <% Set UploadForm=Server.CreateObject("SiteGalaxyUpload.Form") Set FSO=Server.CreateObject("Scripting.FileSystemObject") name = UploadForm("NAME") filename = FSO.GetFileName(UploadForm("UPFILE").FilePath) strdir = Server.MapPath("/file") UploadForm("UPFILE").SaveAs(strDir & "\" & filename) strsql = " INSERT INTO fileupload ( 작성자, 파읷 ) values ('" &_ name & "', '" & filename & "' )" Dbcon.Execute(strSql) Dbcon.Close Set Dbcon=Nothing Set FSO=Nothing Set UploadForm=nothing %> 파읷업로드가정상적으로이루어졌습니다

유의사항 SiteGalaxy.Form 개체가생성되면위와같이컬렉션의형태로입력양식의값들을참조핛수있다. 그럮데, 하나주의핛점은 HTML 입력양식에서정의된입력양식이름 (NAME 속성 ) 과컬렉션을참조하는키 (Key) 값은대소문자를구분핚다 즉, HTML 입력양식에 <input type=file name=upfile> 이라고정의해놓고 uploadform("upfile") 을참조하게되면에러 반드시 uploadform("upfile") 으로이는 SiteGalaxyUpload 컴포넌트자체의버그