본문 바로가기

WEB/ASP

[ASP] abcupload를 이용한 파일 업로드.

http://www.websupergoo.com

에서 제공하는 abcupload라는 컴포넌트를 이용해 파일을 업로드 할 수 있다.
현재 제공되는 것은 abcupload4.x 버전으로 30일짜리 쉐어웨어다.
등록방법은 다운받은후 셋업파일을 실행시키면 된다.

혹시 무료로 사용이 가능한 구버전 abcupload.dll 파일을 가지고 있다면

CMD 창에서 regsvr32 c:\파일경로\AbcUpload.dll 

를 입력하여 수동으로 등록해주고 사용하면 된다. 
등록 취소방법은 
regsvr32 /u c:\파일경로\AbcUpload.dll 


이하 이미지파일을 업로드하고 읽어서 보여주는 예제를 통해 사용법을 알아보자.

   
<form method="post" action="./abcupload_ok.asp" enctype="multipart/form-data"> 
 <!--AbcUpload라는 컴포넌트를 이용하여 업로드 해야하기때문에 
 데이타 전송시 multipart/form-data 로 엔코딩 타입을 지정해줘야한다.-->
	<table width="400" border="1" cellspacing="0" cellpadding="0"> 	
	<tr align="center">
		<td colspan="2" height="25">abcup</td>
	</tr> 
	<tr>
		<td align="center">이름</td> 
		<td width="350"> <input type="text" name="upname"></td>
	</tr>
	<tr>
		<td align="center">첨부1</td>
		<td><input type="file" name="file" size="30"></td>
	</tr>
	<tr>
		<td align="center">첨부2</td>
		<td><input type="file" name="file" size="30"></td> 
	</tr>
	<tr> 
		<td colspan="2" align="center">
		<input type="submit" value="업로드"></td>
	</tr>
	</table>
</form> 

1째줄의 enctype 엔코딩 타입을 설정해 주는 것이 중요하다.

-결과 화면



   
<%option explicit%>
<%	
	'abcupload 를 이용한 파일 읽어와서 저장하기 시작.
	dim FileSize, fileSaveDir, Upload, getfile, upname,name1,name2
	
	set Upload=server.createobject("ABCUpload.XForm")'XForm객체 생성
	'Set Upload = Server.CreateObject("ABCUpload4.XForm")	
	Upload.Maxuploadsize = 1024*1024*20  '최대 파일 사이즈 지정 
	Upload.AbsolutePath = True '절대 경로로 접근
	Upload.Overwrite = True '같은 파일 있을 때 덮어쓰기 가능으로 설정
	fileSaveDir = server.mappath("./") & "\upload\" 'upload 패스

	Upload.CodePage = 949 'euc-kr로 인코딩 한글텍스트와 파일이름을 받기위함.

	upname = Upload("upname")
	'엔코딩 되어 넘어오기 때문에 때문에 form방식을 사용하지 못한다.
	'일반 텍스트항목등도 XForm객체를 이용하여 받아야만 한다.
	'단 QueryString(get방식)의 경우는 기존과 같이 받을 수 있다.
	'enctype="multipart/form-data"
	
	Dim fso, fldr
	SET fso = CreateObject("Scripting.FileSystemObject") '파일시스템 오브젝트 생성
	
	IF NOT(fso.FolderExists(fileSaveDir)) Then ' 폴더가 없으면
		SET fldr = fso.CreateFolder(fileSaveDir) '폴더 생성
	END IF
	SET fso = NOTHING  '오브젝트 생성 해제


	Set getfile = Upload("file")(1) 
	'XField객체를 생성하여 파일가져오기 (input file name을 써준다.) 
	'파일이름이 같으니 (1)(2)등의 인덱스 요소를 사용.

	If getfile.FileExists Then '업로드된 파일이 있으면
		name1 = getfile.RawFileName '파일이름 설정 후
		getfile.Save fileSaveDir&name1 ' 파일 저장	 
	End If

	Set getfile = Upload("file")(2) 
	'XField객체를 생성하여 파일가져오기 (input file name을 써준다.) 
	'파일이름이 같으니 (1)(2)등의 인덱스 요소를 사용.

	If getfile.FileExists Then '업로드된 파일이 있으면
		name2 = getfile.RawFileName '파일이름 설정 후
		getfile.Save fileSaveDir&name2 ' 파일 저장	 
	End If
%>





 업로드 이름 : <%=upname%><br>
 <img src="./upload/<%=name1%>"><br>
 <img src="./upload/<%=name2%>"> 


13줄의 CodePage 설정과, 그 밑 15줄의 일반 텍스트를 받아오는 방식을 유념해야 한다.
 
-결과화면

 


마지막으로 AbcUpload의 XForm,XField 객체의 속성과 메소드 이다.

XFORM 

Method

Description

Read

Read in raw uploaded data from a file.

Save

Save the raw uploaded data.

SetUser

Impersonate a different user.

 

Property

Default

Description

Item

Yes

A set of fields referenced by name or number.

Count

No

The number of field sets available.

ID

No

The form unique ID.

AbsolutePath

No

Whether to use absolute or virtual paths.

Overwrite

No

Whether to overwrite existing files.

MaxUploadSize

No

The maximum size of uploads to allow.

User

No

The current identity being used by ABCUpload.

Domain

No

The domain which the user belongs to.

CodePage

No

The character set codepage to use.

Multipart

No

Whether multipart data was submitted.

Streams

No

Whether to use NTFS streams.

 

XFIELD 

Method

Description

Save

Allows you to save the contents of a field. * 저장하는 메서드

 

Property

Default

Description

Name

No

The name of the HTML field.

Content

Yes

The content of the field as a string.

Length

No

The size of the data held in the field. * 파일사이즈

FileExists

No

If a file was uploaded. * 업로드되었는지

FileName

No

The URL safe uploaded filename.

FileType

No

The inferred file name extension of the file.

MIMEType

No

The MIME type of the uploaded file. * 마임타입

MacBinary

No

If the file was encoded as MacBinary.

SafeFileName

No

The Windows safe filename.

RawFileName

No

The uploaded filename. * 파일이름 구하기

RawFileType

No

The file name extension of the file.

RawFilePath

No

The uploaded filepath.

Data

No

The data within the uploaded file.

Resource

No

The resource data within the uploaded file.

RawData

No

The raw uploaded file data.

RawLength

No

The raw uploaded file length.

ImageType

No

The type of image file uploaded.* 이미지파일종류

ImageWidth

No

The width of image file uploaded.* 이미지 넓이

ImageHeight

No

The height of image file uploaded.* 이미지 높이