[SiteGalaxy] 다중업로드(화일중복방지) > 기술자료 | 해피정닷컴

[SiteGalaxy] 다중업로드(화일중복방지) > 기술자료

본문 바로가기

사이트 내 전체검색

[SiteGalaxy] 다중업로드(화일중복방지) > 기술자료

ClassicASP [SiteGalaxy] 다중업로드(화일중복방지)

페이지 정보


본문

<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<form name="fwrite" action="app_ins.asp" method="post" enctype="multipart/form-data"><br>
첨부1 <input name="upfile1" type="file"><br>
첨부2 <input name="upfile2" type="file"><br>
<input type="submit" value="등록하기">
</form>


[ 샘플1 ] 개별업로드
<% @Language="VBscript" codepage="949" %>
<%
'Option Explicit
session.CodePage = "949"
Response.CharSet = "euc-kr"
Response.buffer=true
Response.Expires = 0
%>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<%
Dim sql, rs
Dim up_form
Set up_form = Server.CreateObject("SiteGalaxyUpload.Form")  ' // utf-8 사용 불가

'======================== 화일 업로드 ========================
dim fc, storedir, count, File_space, fexist
dim checkEmpty1, attach_file1, attach_size1, strname1, strext1, strfilename1, filename1
dim checkEmpty2, attach_file2, attach_size2, strname2, strext2, strfilename2, filename2
  
File_space  = 20000000   '업로드 20메가로 제한
set fc = Server.CreateObject("Scripting.FileSystemObject")
storedir=Server.MapPath("../..")+"\upload\landing\"
  
  checkEmpty1 = up_form("upfile1")
  if Len(checkEmpty1) > 0 then
    attach_file1  = up_form("upfile1").filepath   '파일이 저장될 경로를 지정
    attach_size1  = up_form("upfile1").size
    
    if Clng(attach_size1 / (1024 * 1000)) > Clng(File_space/ (1024 * 1000)) then
      Response.Write("<script language=javascript>")
      Response.Write("  alert('파일용량이 너무 큽니다.\n\n 20Mbyte 이상업로드 할수없습니다.');")
      Response.Write("  history.back();")
      Response.Write("</script>")
      Response.End 
    end if
    
    filename1    = mid(attach_file1, instrrev(attach_file1,"\")+1)     '경로명을 제외한 파일명을 축출
    strname1     = mid(filename1, 1, instrrev(filename1,".")-1)  '파일명에서 이름과 확장자를 분리
    strext1      = mid(filename1, instrrev(filename1,".")+1)
    strfilename1 = storedir & filename1
    
    if trim(strext1) = "asp" or trim(strext1) = "aspx"  or left(trim(strext1),3) = "htm" or  trim(strext1) = "exe" or trim(strext1) = "bat" or trim(strext1) = "com" then
      Response.Write("<script language=javascript>")
      Response.Write("  alert('업로드 금지된 파일입니다.\n\n 압축하여 올려주세요');")
      Response.Write("  history.back();")
      Response.Write("</script>")
      Response.End 
    end if
    
    fexist = true ' 같은이름의 파일이 존재한다고 가정한다.
    count = 0     ' 파일이 존재할 경우, 이름 뒤에 붙일 숫자를 세팅한다.
    do while fExist  ' 파일이 중복될 경우 이름을 다시 지정 -파일이름 뒤에 숫자를 붙여서 업
      if(fc.FileExists(strfilename1)) then
        count          = count + 1
        filename1    = strname1 &"-"& count &"."& strext1
        strfilename1 = storedir & filename1
      else
        fExist = false
      end if
    loop
    
    '콤포넌트에 의해 실지 파일을 업로드
    up_form("upfile1").saveas strfilename1
'response.write "filename1 = "& filename1 &"<br>"
  end if
  
  checkEmpty2 = up_form("upfile2")
  if Len(checkEmpty2) > 0 then
    attach_file2  = up_form("upfile2").filepath   '파일이 저장될 경로를 지정
    attach_size2  = up_form("upfile2").size
    
    if Clng(attach_size2 / (1024 * 1000)) > Clng(File_space/ (1024 * 1000)) then
      Response.Write("<script language=javascript>")
      Response.Write("  alert('파일용량이 너무 큽니다.\n\n 20Mbyte 이상업로드 할수없습니다.');")
      Response.Write("  history.back();")
      Response.Write("</script>")
      Response.End 
    end if
    
    filename2    = mid(attach_file2, instrrev(attach_file2,"\")+1)     '경로명을 제외한 파일명을 축출
    strname2     = mid(filename2, 1, instrrev(filename2,".")-1)  '파일명에서 이름과 확장자를 분리
    strext2      = mid(filename2, instrrev(filename2,".")+1)
    strfilename2 = storedir & filename2
    
    if trim(strext2) = "asp" or trim(strext2) = "aspx"  or left(trim(strext2),3) = "htm" or  trim(strext2) = "exe" or trim(strext2) = "bat" or trim(strext2) = "com" then
      Response.Write("<script language=javascript>")
      Response.Write("  alert('업로드 금지된 파일입니다.\n\n 압축하여 올려주세요');")
      Response.Write("  history.back();")
      Response.Write("</script>")
      Response.End 
    end if
    
    fexist = true ' 같은이름의 파일이 존재한다고 가정한다.
    count = 0     ' 파일이 존재할 경우, 이름 뒤에 붙일 숫자를 세팅한다.
    do while fExist  ' 파일이 중복될 경우 이름을 다시 지정 -파일이름 뒤에 숫자를 붙여서 업
      if(fc.FileExists(strfilename2)) then
        count          = count + 1
        filename2    = strname2 &"-"& count &"."& strext2
        strfilename2 = storedir & filename2
      else
        fExist = false
      end if
    loop
    
    '콤포넌트에 의해 실지 파일을 업로드
    up_form("upfile2").saveas strfilename2
'response.write "filename2 = "& filename2 &"<br>"
  end if


'response.write "filename1 = "& filename1 &"<br>"
'response.write "filename2 = "& filename2 &"<br>"

set fc=nothing
'======================== 화일 업로드 끝 ========================
sql = "insert into 테이블 (file필드1, file필드2) values"
sql = sql & "('"&filename1 &"'"
sql = sql &",'"& filename2 &"'"
sql = sql &")"
response.write "sql = "& sql &"<br>"
set rs = db.execute(sql)
set rs=nothing
%>


[ 샘플2 ] for문 활용 업로드 ... 미완성
<%@ Language=VBScript %>
<%  Option Explicit   %>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<%
Dim sql, rs
Dim up_form
Set up_form = Server.CreateObject("SiteGalaxyUpload.Form")

'======================== 화일 업로드 ========================
dim fc, storedir, count, File_space, fexist
dim i, checkEmpty(2), attach_file(2), attach_size(2), strname(2), strext(2), strfilename(2), filename(2)
dim filename1, filename2
  
File_space  = 20000000   '업로드 20메가로 제한
set fc = Server.CreateObject("Scripting.FileSystemObject")
storedir=Server.MapPath("../..")+"\upload\landing\"

for i=1 to 2
  checkEmpty(i) = up_form("upfile"&i)
  if Len(checkEmpty(i)) > 0 then
    attach_file(i)  = up_form("upfile"&i).filepath   '파일이 저장될 경로를 지정
    attach_size(i)  = up_form("upfile"&i).size
    
    if Clng(attach_size(i) / (1024 * 1000)) > Clng(File_space/ (1024 * 1000)) then
      Response.Write("<script language=javascript>")
      Response.Write("  alert('파일용량이 너무 큽니다.\n\n 20Mbyte 이상업로드 할수없습니다.');")
      Response.Write("  history.back();")
      Response.Write("</script>")
      Response.End 
    end if
    
    filename(i)    = mid(attach_file(i), instrrev(attach_file(i),"\")+1)     '경로명을 제외한 파일명을 축출
    strname(i)     = mid(filename(i), 1, instrrev(filename(i),".")-1)  '파일명에서 이름과 확장자를 분리
    strext(i)      = mid(filename(i), instrrev(filename(i),".")+1)
    strfilename(i) = storedir & filename(i)
    
    if trim(strext(i)) = "asp" or trim(strext(i)) = "aspx"  or left(trim(strext(i)),3) = "htm" or  trim(strext(i)) = "exe" or trim(strext(i)) = "bat" or trim(strext(i)) = "com" then
      Response.Write("<script language=javascript>")
      Response.Write("  alert('업로드 금지된 파일입니다.\n\n 압축하여 올려주세요');")
      Response.Write("  history.back();")
      Response.Write("</script>")
      Response.End 
    end if
    
    fexist = true ' 같은이름의 파일이 존재한다고 가정한다.
    count = 0     ' 파일이 존재할 경우, 이름 뒤에 붙일 숫자를 세팅한다.
    do while fExist  ' 파일이 중복될 경우 이름을 다시 지정 -파일이름 뒤에 숫자를 붙여서 업
      if(fc.FileExists(strfilename(i))) then
        count          = count + 1
        filename(i)    = strname(i) &"-"& count &"."& strext(i)
        strfilename(i) = storedir & filename(i)
      else
        fExist = false
      end if
    loop
    
    '콤포넌트에 의해 실지 파일을 업로드
    up_form("upfile"&i).saveas strfilename(i)
    response.write "filename"& i &" = "& filename(i) &"<br>"
  end if
next

fexist = true
count = 0

' 해결못한 부분은 아래입니다. 중복확인후 처리된 파일이름이 추출이 안됩니다.
response.write "filename1 = "& filename1 &"<br>"
response.write "filename2 = "& filename2 &"<br>"

'set fc=nothing
'======================== 화일 업로드 끝 ========================
sql = "insert into 테이블 (file필드1, file필드2) values"
sql = sql & "('"&filename1 &"'"
sql = sql &",'"& filename2 &"'"
sql = sql &")"
response.write "sql = "& sql &"<br>"
set rs = db.execute(sql)
set rs=nothing
%>


참고사이트
http://blog.naver.com/hex91/120015187419 

댓글목록

등록된 댓글이 없습니다.


Total 2,634건 79 페이지
  • RSS
기술자료 목록
1074
PHP   21830  2012-03-16 23:55 ~ 2014-12-28 00:00  
1073
Adobe   20307  2012-03-16 17:16  
1072
HTML   15025  2012-03-16 17:10  
1071
ClassicASP   12098  2012-03-15 02:08  
열람
ClassicASP   21751  2012-03-15 01:58 ~ 2016-10-21 00:00  
1069
ClassicASP   25064  2012-03-15 00:08 ~ 2016-02-29 00:00  
1068
JavaScript   16015  2012-03-12 23:33  
1067
PHP   22911  2012-03-04 17:29  
1066
PHP   21834  2012-03-04 17:09 ~ 2023-01-08 11:38  
1065
Linux   18322  2012-03-02 18:38  
1064
전자결제   12274  2012-03-02 14:34  
1063
영카트   12845  2012-03-02 13:03  
1062
PHP   27574  2012-03-01 21:47 ~ 2012-04-08 00:00  
1061
MySQL   17921  2012-02-29 22:30  
1060
그누보드   11546  2012-02-27 14:09  
1059
ClassicASP   34776  2012-02-21 00:14 ~ 2014-11-11 00:00  
1058
그누보드   15598  2012-02-12 23:59  
1057
Search   22621  2012-02-11 08:13 ~ 2022-04-15 19:42  
1056
PHP   15669  2012-02-11 08:05  
1055
그누보드   12502  2012-02-10 22:14 ~ 2016-11-21 00:00  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.