IE에서 문서를 연결할 때 OLE에서 지원하는 문서를 발견하면 IE는 자동으로 해당 프로그램을 호출하여 문서를 엽니다. 사용자에게 마우스 오른쪽 버튼을 클릭하라고 상기시킬 수는 있지만 때로는 이 기능이 필요하지 않습니다.
문서를 다운로드하기 위한 "다른
이름으로 대상 저장" "..." 명령을 사용하지만 이는 결국 FSO 및 Stream 메서드를 사용하여 IE에서 문서를 직접 다운로드하는 방법을 설명합니다.
=65001%>
<%
'파일 이름을 입력해야 합니다.
if Request("파일 이름")="" 그러면
response.write "<h1>오류:</h1>파일 이름이 비어 있습니다!<p>"
또 다른
downloadFile(replace(replace(Request("파일 이름"),"",""),"/",""))를 호출합니다.
함수 다운로드파일(strFile)
' 이 기능이 작동하려면 최신 MDAC 버전을 사용하고 있는지 확인하세요.
'지정된 파일의 전체 경로를 얻습니다
strFilename = 서버.MapPath(strFile)
' 버퍼를 지웁니다
응답.버퍼 = 참
응답.지우기
' 스트림 생성
s = Server.CreateObject("ADODB.Stream") 설정
s.오픈
' 바이너리로 설정
s.유형 = 1
' 파일에 로드
오류 발생 시 다음 재개
' 파일이 존재하는지 확인하세요
fso = Server.CreateObject("Scripting.FileSystemObject") 설정
그렇지 않은 경우 fso.FileExists(strFilename) 다음
Response.Write("<h1>오류:</h1>"&strFilename&"이 존재하지 않습니다!<p>")
응답.종료
종료하면
'파일 길이를 알아낸다
f = fso.GetFile(strFilename) 설정
intFilelength = f.size
s.LoadFromFile(str파일 이름)
만약 그렇다면
Response.Write("<h1>오류: </h1>알 수 없는 오류!<p>")
응답.종료
end if
' 헤더를 사용자에게 보냅니다 찾아보기
Response.AddHeader "Content-Disposition","attachment; filename="&f.name
Response.AddHeader "Content-Length",intFilelength
Response.CharSet = "UTF-8"
Response.ContentType = "application/octet-stream"
' 파일을 브라우저에 출력합니다.
응답.BinaryWrite s.Read
Response.Flush
'정리
s.닫기
s = 아무것도 설정하지 않음
종료 기능
종료하면
%>