제목 : 사이트갤럭시 업로드 컴포넌트 사용법 간단한 소스
▣ 사이트 갤럭시 업로드 컴포넌트를 사용한 자료실 구축
1. ASP자료실에서 사이트 갤럭시 업로드 컴포넌트를 다운받아 압축을 푸신후에 setup.exe파일을 실행시킵니다.
2. 사이트 갤럭시 업로드 컴포넌트 셋업은 일반 윈도우용 프로그램 설치와 비슷하므로 쉽게 설치하실 수 있습니다.
3. 파일을 업로드할 때 파일을 저장시켜놓을 폴더를 하나 만든 후 폴더의 등록정보 보안 탭에서 "everyone" 권한에 쓰기 권한을 줍니다.
4. 파일을 전송하기 위한 객체를 생성한다.
set uploadform = server.createobject("sitegalaxyupload.form")
5. 폼에서 전송되는 값을 받을 때는 request객체를 사용하지 않고, uploadform("전송이름")으로 받아 변수에 저장한다.
6. uploadform("파일전송이름").filepath를 사용하여 파일의 전체 경로 값을 얻는다.
strFilePath = UpLoadForm("FileName").FilePath
7. mid 함수와 instrrev 함수를 사용하여 파일이름(파일명.확장자)을 얻는다.
strFileName = Mid(strFilePath,Instrrev(strFilePath,"\")+1)
8. UpLoadForm("FileName")객체의 SaveAs 메소드를 사용해서 파일을 저장시킨다.
strDirectory = "c:\UpLoad\"
strFile = strDirectory & strFileName
UpLoadForm("FileName").SaveAs strFile
9. 파일은 이미 해당 폴더에 저장이 되었고, 이제는 저장된 파일에 대한 정보를 데이터 베이스에 입력시킨다.
10. 파일의 정보를 얻기 위해 FSO를 사용하여 객체를 생성한다.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("strFile")
11. 파일의 이름, 마지막 수정 날짜, 파일의 크기를 변수에 저장한다.
strFname = objFile.Name
strFdate = objFile.DateLastModified
Fsize = objFile.Size
12. 새로운 레코드셋을 열고, 파일의 정보를 새로운 레코드로 추가한다.
objRs.Addnew
...
objRs("Fname") = strFname
objRs("Fdate") = strFdate
objRs("Fsize") = Fsize
...
objRs.Update
--------------------------------------------------------------------
●폼에서 파일을 업로드 처리부분
write.htm
--------------------------------------------------------------------
<input type=file name=imagefile size=50>
--------------------------------------------------------------------
●폼의 값을 전송받은 문서에서 처리부분
write_ok.asp
--------------------------------------------------------------------
'업로드용 객체를 생성
Set uploadform = Server.CreateObject("SiteGalaxyUpload.Form")
'사이트 갤럭시에서 폼에서 전송된 값을 받는 방법
'request객체를 사용하면 아무런 값을 받을 수 없다.
'왜냐하면 폼태그에서 enctype="multipart/form-data"를 사용했기 때문.
idx = uploadform("idx")
name = uploadform("name")
email = uploadform("email")
homepage = uploadform("homepage")
title = uploadform("title")
pwd = uploadform("passwd")
content = uploadform("content")
fileattach = uploadform("imagefile")
'파일을 저장할 디렉토리 설정 - 해당폴더에 NT계정 중 everyone 계정에 write 권한 부여
upd = "E:\InetPub\wwwroot\upload\"
'파일을 업로드했을 경우 처리
'.FilePath는 경로를 포함한 전체 파일 이름이 저장.
If fileattach <> "" then
attach_file = uploadform("imagefile").FilePath
'업로드된 파일이름 뽑아내는 부분 - 중복파일 처리
'instrrev함수는 문자열의 뒤에서부터 "\" 문자가 존재하는 위치 계산.
filename = Mid(attach_file, instrRev(attach_file, "\") + 1)
'파일 이름 구함
file = Mid(filename, 1, instr(filename, ".") - 1)
'파일 확장자 구함
ext = Mid(filename, instr(filename, ".") + 1)
'파일 관련 기본 콤포넌트를 생성 부분
Set fso = CreateObject("Scripting.FileSystemObject")
'임시 변수에 저장할 파일의 완전한 이름을 저장
fileNameTemp = upd & filename
bExist = True
'파일 존재시, 파일이름 뒤에 붙일 값 설정 - 0부터 1씩 증가
countfilename = 0
While bExist
'파일 존재시, 파일 이름 뒤에 숫자 붙인 새로운 파일 이름 생성
If (fso.FileExists(fileNameTemp)) Then
countfilename = countfilename + 1
fileNameTemp = upd & file & countfilename & "." & ext
filename = file & countfilename & "." & ext
' 파일이 존재하지 않을 경우
Else
bExist = False
End if
Wend
'FileSystemObject 객체 해제
Set fso = nothing
'파일의 크기를 구함
filesize = uploadform("imagefile").Size
'파일 업로드 처리(파일의 저장)
'업로드 객체의 SaveAs 메서드로 저장.
uploadform("imagefile").SaveAs fileNameTemp
--------------------------------------------------------------------
●소스를 보여주는 부분
content.asp
--------------------------------------------------------------------
<%
If Rs("filename") <> "" Then
%>
'파일 표시 부분
<a href="/upload/<%=Rs("filename")%>" title="<%=Rs("filename")%> 다운받기"><img src=/images/library.gif><%=Rs("filename")%></a>
<%
End if
%>
--------------------------------------------------------------------
▣ 보조 파일 자료 : ASP 자료실 -> 사이트갤럭시 업로드 컴포넌트