엑셀 ( CSV ) 파일 업로드 하여 DB 저장 > 기술자료 | 해피정닷컴

엑셀 ( CSV ) 파일 업로드 하여 DB 저장 > 기술자료

본문 바로가기

사이트 내 전체검색

엑셀 ( CSV ) 파일 업로드 하여 DB 저장 > 기술자료

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 

댓글목록

등록된 댓글이 없습니다.


Total 2,641건 83 페이지
  • RSS
기술자료 목록
1001
전자결제   19746  2011-10-21 15:59 ~ 2011-11-01 00:00  
1000
전자결제   15316  2011-10-21 15:56  
999
ClassicASP   14766  2011-10-11 21:00  
998
MySQL   13883  2011-10-01 19:05  
997
Adobe   15775  2011-09-29 23:48  
996
JSP   15638  2011-09-29 12:27 ~ 2012-10-09 00:00  
995
그누보드   13351  2011-09-02 10:12 ~ 2017-09-01 00:00  
994
일반   14991  2011-08-23 00:58  
993
HTML   24496  2011-08-17 19:03 ~ 2017-02-16 00:00  
992
PHP   16014  2011-08-15 20:08  
991
일반   39280  2011-08-06 17:43 ~ 2020-06-07 20:24  
990
일반   17631  2011-08-04 23:42  
989
그누보드   22659  2011-08-04 22:57  
988
HTML   21220  2011-08-02 21:24 ~ 2020-10-15 15:20  
987
WindowsServer   24642  2011-07-28 15:30  
986
WindowsServer   43893  2011-07-26 08:01 ~ 2015-01-30 00:00  
985
JavaScript   16129  2011-07-26 07:31  
984
PHP   15479  2011-07-26 07:10  
983
JavaScript   38624  2011-07-26 06:59  
982
영카트   16138  2011-07-23 11:01  

검색

해피정닷컴 정보

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

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