ClassicASP 엑셀 ( CSV ) 파일 업로드 하여 DB 저장
페이지 정보
본문
euc-kr 일때
<% @Language="VBscript" codepage="949" %>
<%
'Option Explicit
session.CodePage = "949"
Response.CharSet = "euc-kr"
Response.buffer=true
Response.Expires = 0
utf-8 일때
<% @LANGUAGE="VBscRIPT" CODEPAGE="65001" %>
<%
Option Explicit
session.codepage = 65001
response.CharSet = "utf-8"
Dim up_form, upload_component, GetFile_space, ProgID, folder
upload_component = "Dext_upload" ' 업로드컴포넌트 선언
GetFile_space = 20000000 '업로드 20메가로 제한
'======================== DEXT ========================
if upload_component = "Dext_upload" then
Set up_form = Server.CreateObject("DEXT.FileUpload")
up_form.UploadTimeout = 3600
'======================== SiteGalaxy ==================
elseif upload_component = "SiteGalaxy" then ' utf-8 일때는 한글깨짐
Set up_form = Server.CreateObject("SiteGalaxyUpload.Form")
end if
'======================== end =========================
folder="..\upload\mailing\"
'response.write folder
if upload_component = "Dext_upload" then
'GetProgressID로 얻은 ID를 이 함수를 통해서 Set 한다.
up_form.SetProgress(ProgID)
up_form.UploadTimeout = 3600
up_form.DefaultPath = Server.MapPath(folder) & "\"
elseif upload_component = "SiteGalaxy" then
end if
'======================== 화일 업로드 ========================
dim fc, storedir, size, fexist
dim checkEmpty1, attach_file1, attach_size1, attach_name1, strname1, strext1, full_attach_name1, count1
set fc = CreateObject("Scripting.FileSystemObject")
storedir=server.mappath(folder)+"\"
checkEmpty1 = up_form("upfile1")
if Len(checkEmpty1) > 0 then
attach_file1 = up_form("upfile1").filepath '파일이 저장될 경로를 지정
if upload_component = "Dext_upload" then
attach_size1 = up_form("upfile1").FileLen
elseif upload_component = "SiteGalaxy" then
attach_size1 = up_form("upfile1").size
end if
if Clng(attach_size1 / (1024 * 1000)) > Clng(GetFile_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
attach_name1 = mid(attach_file1, instrrev(attach_file1,"\")+1) '경로명을 제외한 파일명을 축출
strname1 = mid(attach_name1, 1, instrrev(attach_name1,".")-1) '파일명에서 이름과 확장자를 분리
strext1 = mid(attach_name1,instrrev(attach_name1,".")+1)
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
full_attach_name1 = storedir & attach_name1
fexist = true
count1 = 0
do while fexist '파일이 중복될 경우 이름을 다시 지정 -파일이름 뒤에 숫자를 붙여서 업
if(fc.fileexists(full_attach_name1)) then
count1 = count1 + 1
attach_name1 = strname1&"-"&count1&"."&strext1
full_attach_name1 = storedir & attach_name1
else
fexist=false
end if
loop
'콤포넌트에 의해 실지 파일을 업로드
up_form("upfile1").saveas full_attach_name1
end if
dim objFile, content, contarr
Set objFile = fc.OpenTextFile(full_attach_name1,1)
Do While objFile.AtEndOfStream <> True
content = objFile.ReadLine '파일을 라인단위로 읽어들여 한줄씩 처리합니다.
'한줄을 읽은 후에 objFile은 다음 줄을 가르키고 있으므로 추가적으로 다음줄을 읽으라는 명령을 안줘도 됩니다.
contarr = Split(content,",") 'CSV 에서는 서식있는 문서는 쉼표(,) 로 구분됩니다.
'Split 함수를 이용하여 배열화 시키면 컬럼의 갯수가 늘어나도 유연성 있게 사용할 수 있습니다.
sql="insert into maildata (name, email) values(N'"&contarr(0)&"', N'"&contarr(1)&"' )"
conn.execute sql
response.write contarr(0)&", "&contarr(1)&"<br />"
Loop
Response.write "완료"
Set objFile=Nothing
set fc=nothing
'======================== 화일 업로드 끝 ========================
%>
참고사이트
http://topopen.egloos.com/3212000
http://www.partner114.com/bbs/board.php?bo_table=B01&wr_id=139
http://blog.naver.com/PostView.nhn?blogId=simjin1984&logNo=60102201419
<% @Language="VBscript" codepage="949" %>
<%
'Option Explicit
session.CodePage = "949"
Response.CharSet = "euc-kr"
Response.buffer=true
Response.Expires = 0
utf-8 일때
<% @LANGUAGE="VBscRIPT" CODEPAGE="65001" %>
<%
Option Explicit
session.codepage = 65001
response.CharSet = "utf-8"
Dim up_form, upload_component, GetFile_space, ProgID, folder
upload_component = "Dext_upload" ' 업로드컴포넌트 선언
GetFile_space = 20000000 '업로드 20메가로 제한
'======================== DEXT ========================
if upload_component = "Dext_upload" then
Set up_form = Server.CreateObject("DEXT.FileUpload")
up_form.UploadTimeout = 3600
'======================== SiteGalaxy ==================
elseif upload_component = "SiteGalaxy" then ' utf-8 일때는 한글깨짐
Set up_form = Server.CreateObject("SiteGalaxyUpload.Form")
end if
'======================== end =========================
folder="..\upload\mailing\"
'response.write folder
if upload_component = "Dext_upload" then
'GetProgressID로 얻은 ID를 이 함수를 통해서 Set 한다.
up_form.SetProgress(ProgID)
up_form.UploadTimeout = 3600
up_form.DefaultPath = Server.MapPath(folder) & "\"
elseif upload_component = "SiteGalaxy" then
end if
'======================== 화일 업로드 ========================
dim fc, storedir, size, fexist
dim checkEmpty1, attach_file1, attach_size1, attach_name1, strname1, strext1, full_attach_name1, count1
set fc = CreateObject("Scripting.FileSystemObject")
storedir=server.mappath(folder)+"\"
checkEmpty1 = up_form("upfile1")
if Len(checkEmpty1) > 0 then
attach_file1 = up_form("upfile1").filepath '파일이 저장될 경로를 지정
if upload_component = "Dext_upload" then
attach_size1 = up_form("upfile1").FileLen
elseif upload_component = "SiteGalaxy" then
attach_size1 = up_form("upfile1").size
end if
if Clng(attach_size1 / (1024 * 1000)) > Clng(GetFile_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
attach_name1 = mid(attach_file1, instrrev(attach_file1,"\")+1) '경로명을 제외한 파일명을 축출
strname1 = mid(attach_name1, 1, instrrev(attach_name1,".")-1) '파일명에서 이름과 확장자를 분리
strext1 = mid(attach_name1,instrrev(attach_name1,".")+1)
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
full_attach_name1 = storedir & attach_name1
fexist = true
count1 = 0
do while fexist '파일이 중복될 경우 이름을 다시 지정 -파일이름 뒤에 숫자를 붙여서 업
if(fc.fileexists(full_attach_name1)) then
count1 = count1 + 1
attach_name1 = strname1&"-"&count1&"."&strext1
full_attach_name1 = storedir & attach_name1
else
fexist=false
end if
loop
'콤포넌트에 의해 실지 파일을 업로드
up_form("upfile1").saveas full_attach_name1
end if
dim objFile, content, contarr
Set objFile = fc.OpenTextFile(full_attach_name1,1)
Do While objFile.AtEndOfStream <> True
content = objFile.ReadLine '파일을 라인단위로 읽어들여 한줄씩 처리합니다.
'한줄을 읽은 후에 objFile은 다음 줄을 가르키고 있으므로 추가적으로 다음줄을 읽으라는 명령을 안줘도 됩니다.
contarr = Split(content,",") 'CSV 에서는 서식있는 문서는 쉼표(,) 로 구분됩니다.
'Split 함수를 이용하여 배열화 시키면 컬럼의 갯수가 늘어나도 유연성 있게 사용할 수 있습니다.
sql="insert into maildata (name, email) values(N'"&contarr(0)&"', N'"&contarr(1)&"' )"
conn.execute sql
response.write contarr(0)&", "&contarr(1)&"<br />"
Loop
Response.write "완료"
Set objFile=Nothing
set fc=nothing
'======================== 화일 업로드 끝 ========================
%>
참고사이트
http://topopen.egloos.com/3212000
http://www.partner114.com/bbs/board.php?bo_table=B01&wr_id=139
http://blog.naver.com/PostView.nhn?blogId=simjin1984&logNo=60102201419
댓글목록
등록된 댓글이 없습니다.