파일 다운로드 소스 > 기술자료

본문 바로가기
사이트 내 전체검색

기술자료

ClassicASP 파일 다운로드 소스

페이지 정보

댓글 0건 조회 1,409회 작성일 17-09-13 23:26

본문


<%
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
  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기

댓글목록

등록된 댓글이 없습니다.


Total 2,248건 1 페이지
기술자료 목록
번호 제목
공지 일반
온라인 강좌를 소개합니다. ( update. 2017-12-05 16:33 ) Hit.16081
2247 PHP
2246 그누보드
[G5] scroll 상단으로 / 가운데로 / 하단으로 이동하기 ( update. 2018-07-20 21:01 ) 댓글+ 1 Hit.28
2245 JSP
2244 JSP
2243 HTML
2242 일반
2241 그누보드
2240 Linux
2239 제로보드
[XpressEngine] files 폴더의 비밀 ( update. 2018-07-13 21:51 ) Hit.48
2238 MySQL
2237 JavaScript
[jQuery] Magnific Popup ( write. 2018-07-12 ) Hit.58
2236 일반
전자책 읽기에 최적화된 무료 EPUB 뷰어 ( update. 2018-07-11 17:27 ) Hit.71
2235 HTML
2234 HTML
2233 그누보드
ZeroBoard 4를 그누보드 5 로 변경 ( update. 2018-07-02 21:40 ) Hit.93
2232 Search
Bing (빙) 웹마스터도구 사이트 등록하기 ( update. 2018-07-01 02:41 ) Hit.120
2231 일반
IU 노래 181곡을 Youtube에서 연속듣기 ( update. 2018-07-04 23:09 ) Hit.130
2230 그누보드
2229 그누보드
XE -> 그누보드5 변경 v7 ( update. 2018-06-12 13:13 ) Hit.250
2228 제로보드
2227 호스팅
무료 호스팅을 제공하는 업체 ( update. 2018-06-12 03:53 ) Hit.195
2226 제로보드
[XpressEngine] 버전 확인하기 ( write. 2018-06-11 ) Hit.160
2225 제로보드
2224 호스팅
let's encrypt 지원하는 호스팅 ( write. 2018-06-07 ) Hit.176
게시물 검색

회원로그인

계좌이체 or 신용카드 결제하기
해피정닷컴으로 대금결제를 할 수 있습니다

접속자집계

오늘
104
어제
1,410
최대
3,174
전체
4,135,540

회사명: 해피정닷컴   사업자번호: 119-05-36414   전화: 070-7600-3500   팩스: 02-865-3528   주소: 08394 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
대표: 정창용   개인정보보호책임자: 정창용   통신판매업신고번호: 2014-서울구로-0074 [사업자등록정보확인]   건강기능식품영업신고번호 제2018-0080452호
Copyright 2001~2018 해피정닷컴. All Rights Reserved.