[Classic ASP] 파일다운로드
ASP에서 파일을 다운로드 하는 경우에는 ContentType을 "application/unknown"으로 설정해주어야 MINE 연결이 해제되고 저장하는 방식으로 처리된다.
그리고 헤더를 보낸후에 파일 내용을 바이너리형식으로 보내 주어야 하는데 이를 위하여 파일을 Strem형식으로 읽어 보내주면 된다.
한가지 주의점은 저장파일의 이름변수의 값이 PC에서 파일이름으로 사용할 수 없는 문자가 포함되지 않도록 되어있어여하는데 함수 RefineFileName는 이값들을 정제해주는 기능의 함수로 잘못된 파일이름으로 인한 에러를 방지해 줄 수 있다,
<%
function FileDownload( cPathFile, cSaveFileName )
Response.ContentType = "application/unknown"
Response.AddHeader "Content-Disposition","attachment; filename=" & cSaveFileName&" "
Response.BinaryWrite GetFileStream( cPathFile )
FileDownload = null
end function
function GetFileStream( cPathFile )
dim oStream, sFile
set oStream = Server.CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.LoadFromFile cPathFile
sFile = oStream.Read
set oStream = nothing
GetFileStream = sFile
end function
function RefineFileName( c )
c = Replace( c, "/", "" )
c = Replace( c, "?", "" )
c = Replace( c, "*", "" )
c = Replace( c, ">", "]" )
c = Replace( c, "<", "[" )
c = Replace( c, "|", "-" )
c = Replace( c, ":", "-" )
RefineFileName = c
end function
%>
저작권자 © WDEV, 무단전재 및 재배포 금지

