폼 기반의 파일 업로드의 원리와 TABS Upload 서버 컴포넌트의 역할에 대해 설명합니다.
폼 기반의 파일 업로드를 위해 인코딩 형식이 multipart/form-data인 HTML 폼을 만듭니다.
<form method="post" ENCTYPE="multipart/form-data" action="upload.asp">
<input type="text" name="userName">
<input type="file" name="uploadFile">
<input type="submit" name="submit" value="Upload">
</form>
사용자는 웹 브라우저에 해당 폼을 로딩한 후 폼 요소에 값과 업로드 파일을 입력합니다.
입력이 끝났으면 Upload 버튼을 클릭합니다.
웹 브라우저는 입력한 폼 요소 데이터와 첨부 파일 데이터를 MIME 형식으로 인코딩한 후 HTTP를 통해 웹 서버로 전송합니다.
POST /upload.asp HTTP/1.1
Accept-Language: ko
Content-Type: multipart/form-data; boundary=---------------------------7d1f5a80420
Content-Length: 5847
Cache-Control: no-cache
-----------------------------7d1f5a80420
Content-Disposition: form-data; name="userName"
Hong GilDong
-----------------------------7d1f5a80420
Content-Disposition: form-data; name="uploadFile"; filename="C:\hong.gif"
Content-Type: image/gif
[Binary Data]
-----------------------------7d1f5a80420
Content-Disposition: form-data; name="submit"
Submit
-----------------------------7d1f5a80420--
IIS는 action에 명시된 업로드 처리 ASP 페이지를 실행시킵니다.
ASP 페이지에서는 업로드 데이터를 처리하기 위해 TABS Upload 오브젝트를 생성합니다.
Start 메서드를 호출하면 MIME 데이터를 수신하면서 해석합니다.
모든 업로드 데이터를 전송 받은 후 Form 오브젝트를 사용해 업로드된 데이터를 참조합니다.
Set Upload = Server.CreateObject("TABSUpload4.Upload")
Upload.Start "C:\Temp"
Response.Write Upload.Form("userName")
Upload.Form("uploadFile").Save