My Name is Kay....

DIY , 먹방 , 개발 , 육아 , 여행 좋아합니다. AdBlock 사용시 화면이 정상적으로 노출되지 않습니다.



kay
조회 수 3303 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

ADODB.Stream 개체를 사용하여 ASP를 통해 브라우저에 이진 파일 보내기

웹 개발자들은 종종 Active Server Pages(ASP)를 통해 웹 서버의 파일 시스템에서 이진 파일을 읽은 다음 콘텐트를 웹 브라우저로 보내야 합니다

(예: Excel 파일을 브라우저에 쓰기 위해). 

개발자는 파일 시스템 개체(FSO)를 사용하여 

이런 작업을 시도하기는 하지만 FSO는 파일 시스템에서 ASCII 데이터만 읽도록 설계되었으므로 작동하지 않습니다. 

파일 시스템에서 이진 데이터를 읽으려면 이진 데이터를 읽는 기능이 있는 구성 요소를 사용해야 합니다. 

Microsoft ActiveX Data Objects 2.5에서는 ADODB.Stream 개체가 이 기능을 제공합니다. 

ASP에서 ADODB.Stream을 호출하고 ASP Response 개체에서 고유한 BinaryWrite 메서드를 사용하면 

매우 적은 양의 코드를 사용하여 이진 데이터를 모든 종류의 브라우저로 보낼 수 있습니다.

(출처 : http://support.microsoft.com/kb/276488/ko)


한마디로... FSO로는 안되는게 있으니 ADODB Stream 을 쓰라는 말인듯합니다..

제목도 거창한듯하나... 그냥 파일 다운받기 입니다...


TEST Url : http://www.uhoon.co.kr/test/1349.asp  ( 클릭하시면 1349.txt 파일이 다운 됩니다.. )


<%
'Set the content type to the specific type that you are sending.
Response.ContentType = "application/unknown"
Response.AddHeader "Content-Disposition","attachment; filename=1349.txt"


Const adTypeBinary = 1
Dim strFilePath

strFilePath = server.mapPath("/test/1349.txt")
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath

Response.BinaryWrite objStream.Read

objStream.Close
Set objStream = Nothing
%>



?