2010년 3월 2일 화요일

ASP XMLHTTP

원격지에 있는 데이터 파일을 읽어서 로컬 서버에서 처리하는 작업은 서버간 연동시 종종 있는 일입니다. 이런 작업을 할때 몇가지 기법이 사용되지만 순수 ASP만으로 처리하려면 XMLHTTP 객체를 사용하면 됩니다.

 

아래 코드는 현재 서버의 특정 .asp 파일을 호출하는 시점에 외부 서버에 있는 CSV 파일을 읽어서 현재 .asp 파일을 열고 있는 클라이언트에게 다운로드가 가능하도록 처리해주는 소스입니다.

 

<%
   Dim remoteURL, csvFile
   Dim objXMLHTTP

 

   remoteURL = "http://test.com/csv/" ' CSV 파일이 있는 원격지 경로
   csvFile = "data.csv" ' CSV 파일명

 

   ' XMLHTTP로 원격지 CSV 읽어오기
   Set http = Server.CreateObject("Microsoft.XMLHTTP")
   http.Open "GET", remoteURL & csvFile, False
   http.Send

 

   ' 데이터를 정상적으로 가져왔으면 다운로드 진행
   if http.Status = 200 Then
      ' 출력 헤더 설정
      Response.ContentType = "text/csv"
      Response.AddHeader "Content-Disposition","attachment; filename=" & csvFile
      Response.Buffer = True

 

      ' 읽어온 CSV를 이진 출력
      Response.BinaryWrite http.responseBody
   else
      Response.Write "CSV파일을 읽어오는데 실패하였습니다."
   end if

 

   Set http = Nothing
%>


위 소스를 csv.asp 정도로 저장하시고, 다운로드 버튼 있는 곳에 타겟 링크로 잡아 주시면 다운로드가 진행됩니다. 만약 .csv 파일을 못읽어왔을때는 오류 메시지를 보여주는데, 이 부분은 자신에 맞게 적당히 디자인하시면 됩니다.

댓글 없음:

댓글 쓰기