엑셀 ( 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,634건 84 페이지
  • RSS
기술자료 목록
974
영카트   13420  2011-07-23 10:22  
973
영카트   14961  2011-07-23 10:20  
972
호스팅   14264  2011-07-05 17:42  
971
PHP   24765  2011-06-12 20:30 ~ 2024-02-28 09:43  
열람
ClassicASP   23681  2011-06-11 22:02  
969
JavaScript   19542  2011-06-11 19:23 ~ 2011-06-12 00:00  
968
JavaScript   27031  2011-06-11 19:01  
967
그누보드   12758  2011-06-08 21:30  
966
일반   30051  2011-05-24 10:49  
965
etc쇼핑몰   25381  2011-05-20 22:07 ~ 2011-05-26 00:00  
964
PHP   29447  2011-04-20 19:59  
963
일반   22730  2011-04-05 11:28  
962
Adobe   22746  2011-03-27 22:09  
961
PHP   22604  2011-03-27 21:51  
960
일반   29210  2011-03-13 05:50  
959
WindowsServer   42573  2011-03-05 12:02 ~ 2011-12-16 00:00  
958
PHP   19616  2011-02-24 16:10 ~ 2021-11-23 09:25  
957
일반   16650  2011-02-11 07:04  
956
그누보드   12425  2011-02-09 06:28  
955
영카트   15397  2011-02-09 06:15  

검색

해피정닷컴 정보

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

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