ClassicASP 파일 다운로드 소스
페이지 정보
본문
<%
file_dir = "/upload/"
file_name = "HappyDay.png"
%>
1. 파일 링크 다운로드가 아닌 파일을 직접 읽어 스트림으로 보내는 형식
1-1. file.asp
<a href="download.asp?filename=<%=file_name%>">파일 다운로드</a>
1-2. download.asp
<%
'----------------------------------------------------------------------
' *************** ASP 파일 다운로드 소스 ******************
' 파일 링크 다운로드가 아닌 파일을 직접 읽어 스트림으로 보내는 형식
' ****************************************************
'
' [사용방법]
' 1) download.asp?filename=test.jpg
' 2) <a href="download/download.asp?filename=aaa.jpg">aaa.jpg 파일 다운로드</a>
'----------------------------------------------------------------------
'파일이 저장되어 있는 경로
filepath = "c:\temp\"
'다운로드할 파일 이름을 얻어온다.(c:\temp\에 해당 파일이 있으면 다운로드 함)
filename = request("filename")
Response.Expires = 0
Response.Buffer = True
Response.Clear
Set fs = Server.CreateObject("Scripting.FileSystemObject")
If fs.FileExists(filepath & filename) Then
'파일이 있을경우 파일을 스트림 형태로 열어 보낸다.
Response.ContentType = "application/octet-stream"
Response.CacheControl = "public"
Response.AddHeader "Content-Disposition","attachment;filename=" & filename
Set Stream=Server.CreateObject("ADODB.Stream")
Stream.Open
Stream.Type=1
Stream.LoadFromFile filepath & filename
Response.BinaryWrite Stream.Read
Stream.close
Set Stream = nothing
Else
'파일이 없을 경우...
Response.Write "해당 파일을 찾을 수 없습니다."
End If
Set fs = Nothing
%>
2. 자바스크립트를 이용해서 파일 다운로드 하기
2-1. file.asp
<form name="form1" method="post">
<input type="hidden" name="idx" value="<%=GetSeq%>">
<input type="hidden" name="boardName" value="<%=NewGetTable%>">
<input type="hidden" name="filedir" value="">
<input type="hidden" name="filename" value="">
</form>
<a href="javascript:down('<%=file_dir%>','<%=file_name%>');">다운로드</a>
<script>
function down(str,str2){
var form = document.form1;
form.filedir.value = str;
form.filename.value = str2;
form.action = "download.asp";
form.submit();
}
</script>
2-2. download.asp
<%
call down()
'call down_new()
sub down()
Dim csfilename, strUA, intVersion, objStream, strFile, csfilepath, csfiledir
csfilename = trim(Request.Form("filename"))
csfiledir = trim(Request.Form("filedir"))
csfilepath= server.MapPath("/") & csfiledir
strUA = Request.ServerVariables("HTTP_USER_AGENT")
Response.ContentType = "application/unknown"
If Instr(strUA, "MSIE") Then
intVersion = CDbl(mid(strUA, Instr(strUA, "MSIE")+5, 3))
If intVersion = 5.5 Then
response.cachecontrol="public"
Response.AddHeader "Content-Disposition","filename=" & csfilename
Else
Response.AddHeader "Content-Disposition","attachment;filename=" & csfilename
End If
Else
Response.AddHeader "Content-Disposition","attachment;filename=" & csfilename
End If
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile csfilepath & csfilename
strFile = objStream.Read
Response.BinaryWrite strFile
end sub
sub down_new()
dim filename, filepath, objFS, objF, objDownload, filedir
filedir = server.MapPath("/") & trim(Request.Form("filedir"))
filename = trim(Request.Form("filename"))
'다운될 파일 경로 체크 = 경로+파일명
filePath = filedir & filename
'response.write filePath
'response.end
Response.Buffer = False
'Response.ADDheader "Content-Disposition","attachment;filename="&filename
'======== 인터넷 익스플로 안에서 보여줄때..
'Response.ADDheader "Content-Disposition","inline;filename="&filename
set objFS=server.createobject("scripting.filesystemobject")
if not objFS.fileexists(filepath) then
'response.write "경로 : " & filepath
%>
<script language="javascript">
alert("파일이 존재하지 않습니다.");
history.go(-1)
</script>
<%
else
set objF=objFS.GetFile(filepath)
response.addheader "content-length", objF.size
set objF=nothing
set objFS=nothing
response.contenttype="application/unknown"
response.cachecontrol="public"
Response.ADDheader "Content-Disposition","attachment;filename="&filename
'set objDownload=Server.Createobject("dext.filedownload")
'objDownload.Download filepath
'set objDownload=nothing
set fso = server.CreateObject("SiteGalaxyUpload.FileSystemObject")
set file = fso.OpenBinaryFile (filepath,1,false)
Response.BinaryWrite file.ReadAll
set fso = nothing
end if
end sub
%>
참고자료
http://sugame.tistory.com/230
댓글목록
등록된 댓글이 없습니다.