ClassicASP ABCUpload 이용해서 파일 업로드 및 다운로드
페이지 정보
본문
<%
'파일업로드 기본설정
response.expires = -10000
Server.ScriptTimeOut = 300
Set theForm = Server.CreateObject("ABCUpload4.XForm")
'theForm.CodePage = 65001 ' utf-8일때 사용
theForm.Overwrite = False ' 덮어쓰기 허용여부 True:허용 / False:안함
theForm.MaxUploadSize = 8000000 '8M 업로드 가능
Set FSO = Server.CreateObject("Scripition.FileSystemObject")
theForm.AbsolutePath = True
dim fileName, fileSize
Function GetUniqueName(strFileName, DirectoryPath)
dim strName, strExt, bExist, strFileWholePath, countFileName
'확장자가 없는 경우를 처리
if InstrRev(strFileName, ".") = 0 then
response.write "<script language='javascript'>"
response.write "alert(!""적절한 파일이 아닙니다.\n\n확장자가 있는지 확인해보세요"");"
response.write "history.back();"
response.write "</script>"
response.end()
end if
bExist = True;
strFileWholePath = DirectoryPath & "\" & strName & "." & strExt
countFileName = 0
do while bExist
if (fso.FileExists(strFileWholePath)) then
countFileName = countFileName + 1
strFileName = strName & "(" & countFileName & ")." & strExt
else
bExist = False
end if
loop
GetUniqueName = strFileWholePath
end function
sub Exec_fileUp(newFile,deleteFile,deleteFileSize,DirectoryPath,num)
set theField = newFile(num+1)
if theField.FileExists then '만일 파일업을 했으면...
strFileName = theField.SafeFileName '파일명
strFileSize = theField.Length '파일 사이즈
'파일명을 정한다.
strExt = mid(strFileName, InstrRev(strFileName, ".") + 1)
strName = replace(Date(),"-","") & right(session.sessionID,4)
strFileName = strName & "." & strExt
if theField.Length > 8000000 then
response.write "<script language=javascript>"
response.write "alert(!""8M 이상의 파일은 업로드할 수 없습니다."");"
response.write "history.back();"
response.write "</script>"
response.end()
else
if Len(deleteFile) > 0 then
delfile = DirectoryPath & "\" & deleteFile
if (fso.FileExists(delfile)) then
fso.DeleteFile(delfile) '파일을 지운다.
end if
end if
strFileWholePath = GetUniqueName(strFileName, DirectoryPath) '적합한 파일인지 체크한다.
theField.Save strFileWholePath '파일을 저장한다.
end if
fileUpload = strFileName
fileSize = strFileSize
else
fileUplod = deleteFile
fileSize = deleteFileSize
end if
end sub
'파일 업로드, 업로드 폼이 추가되면 아래 문장만 추가한다. 물론 파일명은 수정해야 한다.
CALL Exec_fileUp(theForm.item("fileUpload"),"","",DirectoryPath,0)
%>
위 CALL 문장은 파일을 업로드 하는데 사용을 하면 되고
수정을 할 경우에는 아래 문장을 사용하면 된다
사용할 경우 삭제할 파일명과 사이즈를 먼저 구한 후에 실행을 해야 한다.
<%
'파일 업로드 및 삭제
CALL Exec_fileUp(theForm.item("fileUpload"),DelfileUpLoad,DelfileSize, DirectofyPath,0)
%>
파일을 다운로드 받을 경우, Stream을 이용해서 다운을 받는다.
<%
FileName = request("FIlename") '파일이름
response.ContentType = "application/unknown" 'ContentType 을 선언
response.AddHeader "Content-Disposition","attachment;filename=" & FileName '헤더값이 첨부파일을 선언
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
ojbStream.Type = 1
objStream.LoadFormFile Server.MapPath("\admin\upload") & \" & FileName '절대경로
download = objStream.Read
response.BinaryWrite download '이게 보통 response.Redirect 로 연결시켜주는 부분을 대신하여 사용된 것
Set objStream = nothing
%>
자료출처
http://blog.daum.net/thecoolman/3797336
'파일업로드 기본설정
response.expires = -10000
Server.ScriptTimeOut = 300
Set theForm = Server.CreateObject("ABCUpload4.XForm")
'theForm.CodePage = 65001 ' utf-8일때 사용
theForm.Overwrite = False ' 덮어쓰기 허용여부 True:허용 / False:안함
theForm.MaxUploadSize = 8000000 '8M 업로드 가능
Set FSO = Server.CreateObject("Scripition.FileSystemObject")
theForm.AbsolutePath = True
dim fileName, fileSize
Function GetUniqueName(strFileName, DirectoryPath)
dim strName, strExt, bExist, strFileWholePath, countFileName
'확장자가 없는 경우를 처리
if InstrRev(strFileName, ".") = 0 then
response.write "<script language='javascript'>"
response.write "alert(!""적절한 파일이 아닙니다.\n\n확장자가 있는지 확인해보세요"");"
response.write "history.back();"
response.write "</script>"
response.end()
end if
bExist = True;
strFileWholePath = DirectoryPath & "\" & strName & "." & strExt
countFileName = 0
do while bExist
if (fso.FileExists(strFileWholePath)) then
countFileName = countFileName + 1
strFileName = strName & "(" & countFileName & ")." & strExt
else
bExist = False
end if
loop
GetUniqueName = strFileWholePath
end function
sub Exec_fileUp(newFile,deleteFile,deleteFileSize,DirectoryPath,num)
set theField = newFile(num+1)
if theField.FileExists then '만일 파일업을 했으면...
strFileName = theField.SafeFileName '파일명
strFileSize = theField.Length '파일 사이즈
'파일명을 정한다.
strExt = mid(strFileName, InstrRev(strFileName, ".") + 1)
strName = replace(Date(),"-","") & right(session.sessionID,4)
strFileName = strName & "." & strExt
if theField.Length > 8000000 then
response.write "<script language=javascript>"
response.write "alert(!""8M 이상의 파일은 업로드할 수 없습니다."");"
response.write "history.back();"
response.write "</script>"
response.end()
else
if Len(deleteFile) > 0 then
delfile = DirectoryPath & "\" & deleteFile
if (fso.FileExists(delfile)) then
fso.DeleteFile(delfile) '파일을 지운다.
end if
end if
strFileWholePath = GetUniqueName(strFileName, DirectoryPath) '적합한 파일인지 체크한다.
theField.Save strFileWholePath '파일을 저장한다.
end if
fileUpload = strFileName
fileSize = strFileSize
else
fileUplod = deleteFile
fileSize = deleteFileSize
end if
end sub
'파일 업로드, 업로드 폼이 추가되면 아래 문장만 추가한다. 물론 파일명은 수정해야 한다.
CALL Exec_fileUp(theForm.item("fileUpload"),"","",DirectoryPath,0)
%>
위 CALL 문장은 파일을 업로드 하는데 사용을 하면 되고
수정을 할 경우에는 아래 문장을 사용하면 된다
사용할 경우 삭제할 파일명과 사이즈를 먼저 구한 후에 실행을 해야 한다.
<%
'파일 업로드 및 삭제
CALL Exec_fileUp(theForm.item("fileUpload"),DelfileUpLoad,DelfileSize, DirectofyPath,0)
%>
파일을 다운로드 받을 경우, Stream을 이용해서 다운을 받는다.
<%
FileName = request("FIlename") '파일이름
response.ContentType = "application/unknown" 'ContentType 을 선언
response.AddHeader "Content-Disposition","attachment;filename=" & FileName '헤더값이 첨부파일을 선언
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
ojbStream.Type = 1
objStream.LoadFormFile Server.MapPath("\admin\upload") & \" & FileName '절대경로
download = objStream.Read
response.BinaryWrite download '이게 보통 response.Redirect 로 연결시켜주는 부분을 대신하여 사용된 것
Set objStream = nothing
%>
자료출처
http://blog.daum.net/thecoolman/3797336
댓글목록
등록된 댓글이 없습니다.