게시판 본문 ASP, ASP.NET, IIS & Script - Read Only
| file upload 관련... upload소스파일 첨부합니다.. |
|---|
|
작성자: 조태응
작성일시: 2005-05-27 10:03,
조회수: 5,287
|
<%@ EnableSessionState=False %>
<%
'****************************************************************
'*
'* # PROGRAM TITLE : FileCube... Version 0.0.7 Prepare
'*
'* # PROGRAM CONT. : 업로드 처리 페이지
'*
'* # FILE NAME : upload.asp
'*
'* # MODIFICATIONS :
'* 1. 2003/08/07 송원석 프로그램 수정
'* 2. 2003/08/14 송원석 프로그램 수정
'* 3. 2003/12/17 송원석 프로그램 마지막 수정
'*
'****************************************************************
Option Explicit
'****************************************************************
'* 업로드 시간 제한을 위한 Timeout. 여기에서는 넉넉하게 60 분으로
'* 설정하지만 실제로 Timeout 시간은 컴포넌트 차원에서 관리한다.
'* 주의!!! : ABCUpload 컴포넌트는 '업로드 시간 제한 기능' 을 별도
'* 로 지원하지 않는다.
'****************************************************************
Server.ScriptTimeout = 3600
'On Error Resume Next
%>
<!--#include file="lib/asp/fc_constant_info.asp"-->
<!--#include file="lib/asp/fc_utility_class.asp"-->
<%
'****************************************************************
'* 변수 선언
'****************************************************************
Dim objUpload
Dim objFSO
Dim objFolder
Dim strPath
Dim strFileName
Dim strIsOverwrite
Dim strFullPathName
Dim lngFileLength
'****************************************************************
'* 업로드 작업
'****************************************************************
If UCase(CONST_UPLOAD_COMPONENT) = "DXT" Then
'****************************************************************
'****************************************************************
'* DEXTUpload 컴포넌트 2.0.1
'****************************************************************
'****************************************************************
'****************************************************************
'* 업로드 컴포넌트 개체 생성 및 기본 업로드 폴더 설정
'* 주의!!! : DEXT.FileUpload 컴포넌트 사용시 반드시 객체를 생성한
'* 직 후 DefaultPath 속성을 설정해야 한다. 만약 두 라인 사이에 다
'* 른 코드가 존재하면 경우에 따라서 에러가 발생한다.
'****************************************************************
Set objUpload = Server.CreateObject("DEXT.FileUpload")
objUpload.DefaultPath = CONST_HOSTING_ROOT
Call CheckError("업로드 컴포넌트 개체 생성 및 기본 업로드 폴더 설정")
'****************************************************************
'* 업로드 파일 기본 정보
'****************************************************************
strPath = Trim(objUpload("currPath"))
strIsOverwrite = Trim(objUpload("isOverwrite"))
'** 업로드 크기 제한
objUpload.MaxFileLen = CLng(CONST_FILE_UPLOAD_LIMIT) * 1024 * 1024
Call CheckError("업로드 파일 크기 제한")
'** 업로드 Timeout
If CONST_FILE_UPLOAD_TIMEOUT > 20 Then
objUpload.UploadTimeout = 20 * 60
ElseIf CONST_FILE_UPLOAD_TIMEOUT <= 0 Then
objUpload.UploadTimeout = 5 * 60
Else
objUpload.UploadTimeout = CLng(CONST_FILE_UPLOAD_TIMEOUT) * 60
End If
Call CheckError("업로드 시간 제한")
'****************************************************************
'* 하드디스크의 총 사용 용량 점검 및 실제 파일 저장
'****************************************************************
If CheckCapacity(objUpload.FileLen) Then
If CInt(strIsOverwrite) = 0 Then
objUpload("strFilePath").Save strPath, False
ElseIf CInt(strIsOverwrite) = 1 Then
objUpload("strFilePath").Save strPath, True
End If
Else
objUpload.DeleteAllSavedFiles
Set objUpload = Nothing
Response.End
End If
If Err.Number = -2147220992 Then
Call FileSizeOverMSG()
objUpload.DeleteAllSavedFiles
Set objUpload = Nothing
Response.End
Else
Call CheckError("업로드 파일 저장")
End If
'****************************************************************
'* 업로드 컴포넌트 개체 제거
'****************************************************************
Set objUpload = Nothing
ElseIf UCase(CONST_UPLOAD_COMPONENT) = "ABC" Then
'****************************************************************
'****************************************************************
'* ABCUpload 컴포넌트 4.1 : 무료 컴포넌트
'****************************************************************
'****************************************************************
'****************************************************************
'* 업로드 컴포넌트 개체 생성 및 기본 속성 설정
'* 주의!!! : ABCUpload4.XForm 컴포넌트에서 제공되는 MaxUploadSize
'* 속성을 사용하여 업로드 할 수 있는 파일의 최대 크기를 지정할 수
'* 가 있지만 그 사용법이 유연하지 못하고, 기본값이 8 Mega Byte 로
'* 설정되어져 있으므로, 일단 이 값을 최대한 크게 설정한 후 메뉴얼
'* 작업으로 업로드 파일의 크기 제한 기능을 구현한다.
'* 주의!!! : ABCUpload 컴포넌트는 '업로드 시간 제한 기능' 을 별도
'* 로 지원하지 않는다.
'****************************************************************
Set objUpload = Server.CreateObject("ABCUpload4.XForm")
objUpload.MaxUploadSize = 2147483647 '** Long 형 최대값
objUpload.AbsolutePath = True
strIsOverwrite = Trim(objUpload("isOverwrite"))
If CInt(strIsOverwrite) = 0 Then
objUpload.Overwrite = False
ElseIf CInt(strIsOverwrite) = 1 Then
objUpload.Overwrite = True
End If
Call CheckError("업로드 컴포넌트 개체 생성 및 기본 속성 설정")
'****************************************************************
'* 업로드 파일 기본 정보
'****************************************************************
strPath = Trim(objUpload("currPath"))
strFileName = objUpload("strFilePath")(1).SafeFileName
lngFileLength = objUpload("strFilePath")(1).Length
'****************************************************************
'* 파일 크기 제한 체크
'****************************************************************
If lngFileLength > CLng(CONST_FILE_UPLOAD_LIMIT) * 1024 * 1024 Then
Call FileSizeOverMSG()
Set objUpload = Nothing
Response.End
End If
'****************************************************************
'* 하드디스크의 총 사용 용량 점검 및 실제 파일 저장
'****************************************************************
If CheckCapacity(lngFileLength) Then
If CInt(strIsOverwrite) = 0 Then
strFullPathName = GetFileName(strPath, strFileName)
ElseIf CInt(strIsOverwrite) = 1 Then
strFullPathName = strPath & "\" & strFileName
End If
objUpload("strFilePath")(1).Save strFullPathName
Call CheckError("업로드 파일 저장")
Else
Set objUpload = Nothing
Response.End
End If
'****************************************************************
'* 업로드 컴포넌트 개체 제거
'****************************************************************
Set objUpload = Nothing
End If
'****************************************************************
'* 업로드 작업 종료 후 전체 사용 용량 계산
'****************************************************************
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists(CONST_HOSTING_ROOT) Then
Set objFolder = objFSO.GetFolder(CONST_HOSTING_ROOT)
Application.Lock
Application("TOTAL") = CONST_FILECUBE_TOTAL_SIZE * 1048576
Application("USED") = objFolder.Size
Application("RATIO") = FormatNumber(objFolder.Size / CONST_FILECUBE_TOTAL_SIZE * 100 / 1048576, 2)
Application.Unlock
Set objFolder = Nothing
End If
Set objFSO = Nothing
%>
<script language="JavaScript" type="text/javascript">
<!--
top.frames["exp_left"].document.all.WAIT_MSG.style.display = "none";
top.frames["exp_main"].document.all.WAIT_MSG.style.display = "none";
top.frames["exp_main"].location.reload();
//-->
</script>
<%
'****************************************************************
'* 오류 검사 Function
'****************************************************************
Public Function CheckError(strWork)
If Err.Number <> 0 Then
With Response
.Write "<script language=""JavaScript"" type=""text/javascript"">" & vbCRLF
.Write "" & vbCRLF
.Write "</script>" & vbCRLF
End With
If UCase(CONST_UPLOAD_COMPONENT) = "DXT" Then objUpload.DeleteAllSavedFiles
Set objUpload = Nothing
Response.End
End If
End Function
'****************************************************************
'* 파일 크기 제한 오류 메세지 Sub
'****************************************************************
Public Sub FileSizeOverMSG()
With Response
.Write "<script language=""JavaScript"" type=""text/javascript"">" & vbCRLF
.Write "<!--" & vbCRLF
.Write "top.frames[""exp_left""].document.all.WAIT_MSG.style.display = ""none"";" & vbCRLF
.Write "top.frames[""exp_main""].document.all.WAIT_MSG.style.display = ""none"";" & vbCRLF
.Write "alert(""현재 업로드 하려고 하는 파일의 크기가 관리자가 설정한 제한 용량인 " & CONST_FILE_UPLOAD_LIMIT & " MB 를 초과합니다. "");" & vbCRLF
.Write "//-->" & vbCRLF
.Write "</script>" & vbCRLF
End With
End Sub
'****************************************************************
'* 하드디스크의 총 사용 용량 점검 Function
'****************************************************************
Public Function CheckCapacity(lngCurrentFileSize)
CheckCapacity = True
If CLng(lngCurrentFileSize) > 0 AND lngCurrentFileSize + Application("USED") > Application("TOTAL") Then
With Response
.Write "<script language=""JavaScript"" type=""text/javascript"">" & vbCRLF
.Write "<!--" & vbCRLF
.Write "top.frames[""exp_left""].document.all.WAIT_MSG.style.display = ""none"";" & vbCRLF
.Write "top.frames[""exp_main""].document.all.WAIT_MSG.style.display = ""none"";" & vbCRLF
.Write "alert(""할당된 여유 공간이 부족하여 파일을 업로드 할 수 없으므로 현재 업로드 작업은 취소됩니다. "");" & vbCRLF
.Write "//-->" & vbCRLF
.Write "</script>" & vbCRLF
End With
CheckCapacity = False
End If
End Function
'****************************************************************
'* Public Function RemoveCRLF(strSource)
'****************************************************************
Public Function RemoveCRLF(strSource)
'On Error Resume Next
strSource = Replace(strSource, vbCR, " ")
strSource = Replace(strSource, vbLF, " ")
strSource = Replace(strSource, " ", " ")
strSource = Replace(strSource, " ", " ")
RemoveCRLF = strSource
End Function
'****************************************************************
'* Public Function GetFileName(strPath, strFileName)
'****************************************************************
Public Function GetFileName(strPath, strFileName)
Dim objFSO
Dim strFullPathFileName
Dim strPureName
Dim strExt
Dim iLoopCount
Dim iPosition
Dim aryBuffer
'On Error Resume Next
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
strFullPathFileName = strPath & "\" & strFileName
iLoopCount = 2
Do While objFSO.FileExists(strFullPathFileName)
iPosition = InStrRev(strFileName, ".")
If iPosition > 0 Then
strPureName = Left(strFileName, iPosition - 1)
strExt = Right(strFileName, Len(strFileName) - iPosition)
Else
strPureName = strFileName
strExt = ""
End If
strFullPathFileName = strPath & "\" & strPureName & "(" & iLoopCount & ")." & strExt
iLoopCount = iLoopCount + 1
Loop
GetFileName = strFullPathFileName
Set objFSO = Nothing
End Function
%>
|
|
IP 주소: 203.231.54.9
|
전체 2,095 건의 게시물,
84 페이지로 구성된
ASP, ASP.NET, IIS & Script 게시판의
40 페이지입니다.
|
게시물 | |||
|---|---|---|---|---|
| 1,154 |
궁금이 |
2005-06-07 | 1,037 | |
| 1,153 | 2005-06-07 | 3,298 | ||
| 1,152 |
바보똥개 |
2005-06-03 | 815 | |
| 1,151 | 2005-06-02 | 3,341 | ||
| 1,150 |
|
2005-06-03 | 3,334 | |
| 1,149 |
훈스 |
2005-05-30 | 879 | |
| 1,148 | 2005-05-30 | 3,336 | ||
| 1,147 |
작업취소 메세지... [1] |
훈스 |
2005-05-30 | 775 |
| 1,146 |
훈스 |
2005-05-30 | 807 | |
| 1,145 |
부푸러 |
2005-05-28 | 869 | |
| 1,144 | 2005-05-28 | 3,272 | ||
| 1,143 |
궁굼 |
2005-05-27 | 848 | |
| 1,142 | 2005-05-27 | 3,285 | ||
| 1,141 |
궁굼 |
2005-06-03 | 778 | |
| 2005-05-27 | 5,287 | |||
| 1,139 | 2005-05-27 | 3,407 | ||
| 1,138 | 2005-05-27 | 3,345 | ||
| 1,137 | 2005-05-27 | 3,241 | ||
| 1,136 | 2005-05-26 | 3,357 | ||
| 1,135 | 2005-05-27 | 3,265 | ||
| 1,134 | 2005-05-25 | 3,435 | ||
| 1,133 | 2005-05-25 | 4,477 | ||
| 1,132 | 2005-05-26 | 3,516 | ||
| 1,131 | 2005-05-26 | 3,468 | ||
| 1,130 | 2005-05-13 | 3,927 |

sign in
join
re: 랜덤 함수에서요.