ClassicASP ABCUploadComponent 이용 파일 업로드
페이지 정보
본문
<% @Language="VBscript"%>
<% 'Option Explicit %>
<!--#include virtual = /include/dbconn.asp -->
<%
Dim num, fname, email, filename
Dim sql, abc, oFile, rs, strFileName, fileSize, fileType, DirectoryPath
'DirectoryPath = Server.MapPath("/doboard/file")
DirectoryPath = "D:\homepage\kicet\doboard\file"
Set abc = Server.CreateObject("ABCUpload4.XForm")
' 불량(디비 인젝션)코드 제거하기
function ReplaceTag2Text(str)
Dim text
text = replace(str, "&", "&")
text = replace(text, "<", "<")
text = replace(text, ">", ">")
text = replace(text, "'", """)
text = replace(text, """", """)
ReplaceTag2Text = text
End Function
fname = abc.item("fname")
fname = replaceTag2text(fname)
email = abc.item("email")
email = replaceTag2text(email)
filename = abc.item("filename")
filename = replaceTag2text(filename)
ipAddr = request.ServerVariables("REMOTE_ADDR")
'response.write ("fname = "& fname &"<br>")
'response.write ("email = "& email &"<br>")
'response.END
if Len(ImageFile) > 0 then
abc.AbsolutePath = True
Set oFile = abc("filename")(1)
'실제적인 파일 업로드를 처리하는 부분
If oFile.FileExists Then
strFileName = oFile.SafeFileName
FileSize = oFile.Length
FileType = oFile.FileType
if oFile.Length > 4096000 then
Response.Write "<script type='text/javascript'>"
Response.Write "alert(""4M 이상의 사이즈인 파일은 업로드하실 수 없습니다"");"
Response.Write "history.back();"
Response.Write "</script>"
Response.end
else
strFileWholePath = GetUniqueName(strFileName, DirectoryPath)
'response.write strfilewholepath
oFile.Save strFileWholePath
End if
End if
'파일 업로드 처리 완료..
end if
'response.write ("strFileWholePath = "& strFileWholePath &"<br>")
'response.write ("FileSize = "& FileSize &"<br>")
'response.write ("FileType = "& FileType &"<br>")
'response.write ("strFileName = "& strFileName &"<br>")
'response.END
'if Len(filename) > 0 then
sql = "Insert into tblCEO (fname, email, filename, fileSize, ipaddr) values ('"&fname&"', '"&email&"', '"&strFileName&"', '"&fileSize&"', '"&ipaddr&"')"
'response.write ("sql = "& sql &"<br>")
'response.end
dbconn.Execute(sql)
'end if
Response.Redirect "03.asp?fname="& fname
'유니크한 파일경로및 파일이름을 얻어내는 함수
Function GetUniqueName(byRef strFileName, DirectoryPath)
Dim strName, strExt
' 확장자를 제외한 파일명을 얻는다.
strName = Mid(strFileName, 1, InstrRev(strFileName, ".") - 1)
'확장자를 얻는다
strExt = Mid(strFileName, InstrRev(strFileName, ".") + 1)
Dim fso
Set fso = Server.CreateObject("scripting.FileSystemObject")
Dim bExist : bExist = True
'우선 같은이름의 파일이 존재한다고 가정
Dim strFileWholePath : strFileWholePath = DirectoryPath & "\" & strName & "." & strExt
'저장할 파일의 완전한 이름(완전한 물리적인 경로) 구성
Dim countFileName : countFileName = 0
'파일이 존재할 경우, 이름 뒤에 붙일 숫자를 세팅함.
Do While bExist ' 우선 있다고 생각함.
If (fso.FileExists(strFileWholePath)) Then ' 같은 이름의 파일이 있을 때
countFileName = countFileName + 1 '파일명에 숫자를 붙인 새로운 파일 이름 생성
strFileName = strName & "(" & countFileName & ")." & strExt
strFileWholePath = DirectoryPath & "\" & strFileName
Else
bExist = False
End If
Loop
GetUniqueName = strFileWholePath
End Function
%>
참고사이트
- 세필로님 블로그 ( http://blog.naver.com/acc700?Redirect=Log&logNo=50027385778 )
- 오프라인님 블로그 ( http://blog.naver.com/bmsdong?Redirect=Log&logNo=40002576895 )
댓글목록
등록된 댓글이 없습니다.