ch10_파일 업로드와 이메일 전송

Download Report

Transcript ch10_파일 업로드와 이메일 전송

10장
ㅎㅎ
파일업로드와
이메일 발송
• HTTP 파일 업로드와 탭스 업로드
컴포넌트
• 데이터베이스 연동 자료실 만들기
• 메일 컴포넌트를 이용한 자동
이메일 발송
10장. 파일업로드와 이메일 발송
학습목표
 자동 이메일 발송 기법 이해
 데이터베이스와 연동한 ASP 자료실 개발 방법 이해
 HTTP 폼에서 바이너리 데이터를 전송하는 방법 이해
2
Section 01 HTTP 파일 업로드와 탭스 업로드 컴포넌트 [1/8]
HTTP 파일 업로드 개요
HTTP 파일 업로드
• 웹 브라우저에서 이진 파일 전송이 가능하도록 하기 위해 폼 기반 파일
업로드 표준(RFC 1867)이 제정됨
• RFC 표준에서는 HTML 폼에서 인코딩 타입을 ‘multipart/form-data’
로 지정한 경우 이진 파일 업로드를 지원
ASP에서의 파일 업로드
• HTTP 프로토콜 기반의 웹 사이트에서는 자료 업로드, 파일크기 제한,
허용되지 않는 파일의 업로드 금지, 다중 파일 업로드 등의 파일 업로드
기능을 지원
• ASP는 기본적으로 바이너리 파일 전송을 지원하지 않음
• 파일 업로드를 위해서는 별도의 컴포넌트를 사용해야 함
3
Section 01 HTTP 파일 업로드와 탭스 업로드 컴포넌트 [2/8]
파일 업로드 컴포넌트 설치
업로드 컴포넌트
• ASP에서 지원하지 않는 이진 파일 전송을 위해 별도의 COM기반 컴포
넌트 설치가 필요
• 한글 파일명을 지원하고 서버 자원 점유를 최소화하는 컴포넌트를 설
치할 것
• 이 책에서는 무료로 사용가능한 탭스 업로드 컴포넌트를 사용
탭스 업로드 컴포넌트 설치
4
Section 01 HTTP 파일 업로드와 탭스 업로드 컴포넌트 [3/8]
파일 업로드 – 보안 권한 설정
간단한 파일 업로드
• 네트워크 운영 체제에서는 웹 서버에서 파일 작성을 하려면 웹 서버 쓰
기 권한과 운영체제 수준의 보안 권한을 설정해야 함
• IIS에서 파일 업로드 디렉터리에 쓰기 권한을 설정
• 탐색기에서 파일을 저장할 디렉터리에 수정 권한을 설정해야 함
5
Section 01 HTTP 파일 업로드와 탭스 업로드 컴포넌트 [4/8]
파일 업로드 – 간단한 파일 업로드
HTML 폼 페이지
• <form> 태그에 enctype=“multipart/form-data” 속성을 반드시 추가
• 전송 방식 method는 반드시 POST로 할 것
<form enctype=“multipart/form-data” method=“post”>
6
Section 01 HTTP 파일 업로드와 탭스 업로드 컴포넌트 [5/8]
파일 업로드 – 간단한 파일 업로드
파일 업로드 처리 순서
• ①탭스 업로드 개체 생성
Set objUp = Server.CreateObject(“tabs.Upload”)
• ②업로드된 파일을 저장할 경로 지정
savePoint = Server.MapPath(“/pds”)
• ③파일 처리 시작
objUp.Start savePoint
• ④파일 저장
objUp.Form(“file”).save
• ⑤사용이 끝난 개체 소멸 처리
Set objUp = Nothing
7
Section 01 HTTP 파일 업로드와 탭스 업로드 컴포넌트 [6/8]
Tabs 업로드 컴포넌트 구성 요소
Upload 개체의 주요 메소드
메소드
내용
Delete
업로드한 파일 모두를 일괄 삭제
Save
업로드한 파일을 모두 일괄 저장
Start
HTML 폼 업로드를 시작
Upload 개체의 주요 속성
속성
내용
Form
폼에서 전달된 데이터 값을 저장하는 컬렉션
MaxBytesToAbort
업로드할 수 있는 최대 데이터 크기 지정
ProgressID
업로드 진행 상황을 지정하는 아이디값 반환
8
Section 01 HTTP 파일 업로드와 탭스 업로드 컴포넌트 [7/8]
Tabs 업로드 컴포넌트 구성 요소
Form 개체의 주요 메소드
메소드
내용
Delete
업로드된 파일 삭제
Save
업로드된 파일을 저장
SaveAs
업로드된 파일을 다른 이름으로 저장
Form 개체의 주요 속성
속성
내용
FileName
업로드된 파일의 원본 이름
FileSize
업로드된 파일의 크기를 바이트로 반환
FileType
업로드된 파일의 확장자 반환
Value
폼의 데이터 값을 반환
9
Section 01 HTTP 파일 업로드와 탭스 업로드 컴포넌트 [8/8]
Tabs 업로드 컴포넌트 구성 요소
Download 개체의 주요 메소드
메소드
내용
TransferBlob
업로드된 파일이 DB에 저장된 경우 파일을 웹 브라우
저로 전송
TransferFile
파일 데이터를 웹 브라우저로 전송
Download 개체의 주요 속성
속성
내용
FileName
웹 브라우저에서 저장할 때 나타나는 파일명
FilePath
전송할 파일의 물리적 로컬 경로
IsAccept
웹 브라우저가 다운로드할 파일을 볼지 지정
MimeType
전송할 파일의 MIME 형식을 지정
10
Section 02 데이터베이스 연동 자료실 만들기 [1/7]
자료실용 DB 구축하기
자료실용 테이블 설계하기
설명
컬럼명
자료형
크기(byte)
NULL
기본값
키,
인덱스
게시물 번호
PID
int
4
NOT NULL
ID 사용
기본키
게 시 자
PUserNaem
varchar
20
NOT NULL
비밀번호
PPwd
varchar
20
NOT NULL
이메일 주소
PEmail
varchar
100
NULL
홈페이지
PHomepage
varchar
200
NULL
제
목
PSubject
varchar
200
NOT NULL
내
용
PContents
text
16
NOT NULL
자료가 저장될 주소
PWebPath
varchar
200
NOT NULL
게시물 읽은 횟수
PReadNo
smallint
2
NOT NULL
0
자료 다운로드 횟수
PDownNo
smallint
2
NOT NULL
0
게시물 등록 일시
PPostDate
datetime
8
NOT NULL
getdate()
11
Section 02 데이터베이스 연동 자료실 만들기 [2/7]
ASP 자료실 프로그램 개요
작성할 ASP 자료실은 ①게시물 등록 처리 ②게시물 목록 보기 ③게
시물 상세보기 ④게시물 다운로드 ⑤게시물 삭제하기 의 기능을 갖
는 프로그램의 구조를 가짐
12
Section 02 데이터베이스 연동 자료실 만들기 [3/7]
게시물 등록 처리
게시물 등록 처리는 게시물 등록폼 PdsUpForm.asp 페이지와 게시
물 등록 및 자료 업로드 처리를 수행하는 PdsUpProc.asp 페이지로
구성됨
13
Section 02 데이터베이스 연동 자료실 만들기 [4/7]
게시물 목록 보기
게시물 목록 페이지 작성하기
• 게시물 목록 페이지 PdsList.asp는 새로운 글 등록 메뉴와 자료 목록 그
리고 하나의 자료를 선택할 경우 게시물 상세 보기로 이동하는 기능 등
이 구현됨
• 자료 목록은 자료실 테이블을 SELECT 문으로 검색한 결과가 담긴
Recordset을 레코드가 끝날 때까지 반복하면서 테이블행을 작성하는
구조로 이루어짐
14
Section 02 데이터베이스 연동 자료실 만들기 [5/7]
게시물 상세 보기 처리
게시물 목록 보기 페이지에서 하나의 게시물을 마우스로 클릭하면
해당 레코드의 pid 값을 쿼리스트링으로 만들어 상세 보기 페이지
인 PdsViewDetails.asp를 실행함
PdsViewDetails.asp 페이지는 pid 값으로 자료실 테이블에
SELECT 질의문을 수행하여 해당 레코드의 정보를 출력함
15
Section 02 데이터베이스 연동 자료실 만들기 [6/7]
자료 내려받기 페이지 작성하기
게시물 상세보기 페이지에서 업로드된 파일명을 클릭하면 자료 내
려받기를 수행하는 PdsDownProc.asp 페이지가 실행됨
PdsDownProc.asp 페이지는 텝스업로드의 Download 개체를 이용
하여 웹 브라우저로 파일을 전송함
16
Section 02 데이터베이스 연동 자료실 만들기 [7/7]
게시물 삭제 페이지 작성하기
자료실에서 게시물을 삭제하는 경우 비밀번호를 알아야 함
게시물 삭제 시 DB에서 레코드 삭제와 업로드한 파일 모두를 삭제
해야 함
17
Section 03 메일 컴포넌트를 이용한 자동 이메일 발송 [1/3]
ASP 이메일 발송
인터넷 쇼핑몰 주문 확인 메일이나 이벤트 공지 메일 등은 관리자가
일일이 작성한 메일이 아니라 웹 서버에서 자동으로 생성하고 발송
된 메일
자동으로 발송되는 이메일은 별도의 메시징 컴포넌트를 이용하여
제작된 것
CDO for Windows 2000 개요
CDO는 인터넷 메시징 프로그램을 쉽게 개발하고 유지할 목적으로
MS사에서 만들고 배포하는 컴포넌트
CDO의 기술적인 내용을 다루는 공식 웹사이트에서 많은 기능을 확
인할 수 있음
18
Section 03 메일 컴포넌트를 이용한 자동 이메일 발송 [2/3]
CDO.Massage 개체의 구성 요소
CDO.Massage 개체의 주요 속성
속성
설명
From
메시지를 작성한 발신인 정보를 저장하는 속성
To
메시지를 받을 수신인 정보를 저장하는 속성
Cc
메시지를 받을 참조인을 저장하는 속성
Bcc
메시지를 받을 숨은 참조인을 저장하는 속성
Subject
메시지 제목을 설정하는 속성
TextBody
메시지 내용을 저장하는 속성. 메시지 형태는 텍스트
HTMLBody
메시지 내용을 HTML 형태로 저장하는 속성
CDO.Massage 개체의 주요 메소드
메소드
설명
AddAttatchment
메시지에 첨부할 파일 지정
Send
메시지를 전송
19
Section 03 메일 컴포넌트를 이용한 자동 이메일 발송 [3/3]
Message 개체를 이용한 이메일 발송하기
ASP에서 이메일 발송하기
• Message 개체를 이용하여 이메일 발송
• Message 개체의 속성을 이용하여 발신인, 수신인, 제목, 내용을 입력한
후 Send 메소드를 이용하여 이메일 발송 가능
'Message 개체 생성
Set objEmail = Server.CreateObject("CDO.Message")
objEmail.To = " 수신인 이메일 주소 "
objEmail.Cc = " 참조인 이메일 주소(생략가능 "
objEmail.From = "발신인 이메일 주소"
objEmail.Subject = " 제목 "
objEmail.TextBody = " 내용 "
objEmail.AddAttachment = "첨부할 파일 로컬 경로(생략가능)"
objEmail.Send '이메일 전송
Set objEmail = Nothing
20