원격지에 있는 데이터 파일을 읽어서 로컬 서버에서 처리하는 작업은 서버간 연동시 종종 있는 일입니다. 이런 작업을 할때 몇가지 기법이 사용되지만 순수 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 파일을 못읽어왔을때는 오류 메시지를 보여주는데, 이 부분은 자신에 맞게 적당히 디자인하시면 됩니다.
[출처] ASP, xmlhttp (Wookki25 DB & Programming) |작성자 아침해
댓글 없음:
댓글 쓰기