ASP3.0 기초 강의실

시삽: 레드플러스 님 
게시판 이동:
 제목 : 사이트갤럭시 업로드 컴포넌트 사용법 간단한 소스
글번호: 38
작성자: 관리자
작성일: 2001/09/11 오후 4:22:00
조회수: 11796
파일: my_sitegalaxyupload.zip (3 KB) / 전송수: 2397
▣ 사이트 갤럭시 업로드 컴포넌트를 사용한 자료실 구축

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 자료실 -> 사이트갤럭시 업로드 컴포넌트
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 18. CDO(Collaboration Data Object) : 메일 전송(SMTP... - 관리자 2000-12-27 7509
  17. ADO(ActivX Data Object) : 데이터베이스(DataBase) ... - 관리자 2000-12-27 7266
현재글 사이트갤럭시 업로드 컴포넌트 사용법 간단한 소스 my_sitegalaxyupload.zip(3 KB) 관리자 2001-09-11 11796
  1. OLE DB를 사용한 데이터베이스 연결 - 레드플러스 2004-04-05 6825
  2. ADO 상수 사용법 - 레드플러스 2004-04-17 7321
  3. ADO 학습을 위한 Memo 테이블 생성(한줄 메모장 작성) Memo.sql(495 Byte(s)) 레드플러스 2004-04-17 6008
  4. UDL파일을 통한 데이터베이스 연결 문자열 생성 - 레드플러스 2004-04-18 6772
  Insert문.asp : ADO의 Connection객체를 사용한 Insert문 실행 ADO_Insert.gif(12 KB) 레드플러스 2004-04-18 8065
  Update문.asp ADO_Update.gif(12 KB) 레드플러스 2004-04-18 6529
  Delete문.asp ADO_Delete.gif(12 KB) 레드플러스 2004-04-18 6035
  Select문.asp ADO_Select.gif(18 KB) 레드플러스 2004-04-18 6843
  Select문2.asp ADO_Select2.gif(18 KB) 레드플러스 2004-04-18 6305
  한줄메모장(글쓰기 폼) : MemoWrite.asp MemoWrite.asp(308 Byte(s)) 레드플러스 2004-04-20 7140
  한줄메모장(글쓰기 처리) : MemoWriteProcess.asp MemoWriteProcess.asp(642 Byte(s)) 레드플러스 2004-04-20 6160
  한줄메모장(리스트) : MemoList.asp MemoList.asp(1 KB) 레드플러스 2004-04-20 6971
  한줄메모장(지우기 폼) : MemoDelete.asp MemoDelete.asp(318 Byte(s)) 레드플러스 2004-04-20 6143
  한줄메모장(지우기 처리) : MemoDeleteProcess.asp MemoDeleteProcess.asp(631 Byte(s)) 레드플러스 2004-04-20 6798
다음글 16. ASP사용자를 위한 SQL문 - 관리자 2000-12-27 9041
 
손님 사용자 Anonymous (손님)
로그인 Home