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
<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
댓글목록
등록된 댓글이 없습니다.