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

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

기술자료

ClassicASP 파일 다운로드 소스

페이지 정보

댓글 0건 조회 979회 작성일 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 201건 1 페이지
기술자료 목록
번호 제목
201 ClassicASP
200 ClassicASP
한글 깨짐 변환 (up.2018-03-16 04:56) Hit.397
199 ClassicASP
198 ClassicASP
197 ClassicASP
TypeLib를 로드할 수 없음 (wr.2017-12-27) Hit.819
열람중 ClassicASP
파일 다운로드 소스 (wr.2017-09-13) Hit.980
195 ClassicASP
194 ClassicASP
작은따옴표(')문제 (wr.2016-10-28) Hit.2024
193 ClassicASP
이전글 다음글 추가하기 (wr.2016-08-18) Hit.2512
192 ClassicASP
chr 코드표 보기 (wr.2016-05-28) Hit.3106
191 ClassicASP
190 ClassicASP
189 ClassicASP
Function과 Sub의 차이점 (wr.2016-02-25) Hit.3011
188 ClassicASP
187 ClassicASP
186 ClassicASP
[IIS7] 세션(session) 시간 늘리기 (up.2016-02-26) Hit.5724
185 ClassicASP
184 ClassicASP
Contents.RemoveAll (Session 객체) (wr.2016-01-22) Hit.2266
183 ClassicASP
코드 실행시간 측정하기 (wr.2016-01-18) Hit.2207
182 ClassicASP
특정 IP에서만 보기 (wr.2016-01-13) Hit.2194
181 ClassicASP
웹페이지 출력하기 (up.2016-02-03) Hit.2413
180 ClassicASP
179 ClassicASP
CreateParameter 메서드 (ADO) (wr.2015-03-25) Hit.3296
178 ClassicASP
177 ClassicASP
ABCUpload4 업로드 문제 (wr.2014-12-03) Hit.5594
게시물 검색

회원로그인

접속자집계

오늘
815
어제
3,054
최대
3,099
전체
3,914,690

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