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

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

기술자료

ClassicASP 파일 다운로드 소스

페이지 정보

댓글 0건 조회 1,393회 작성일 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 197건 1 페이지
기술자료 목록
번호 제목
197 ClassicASP
196 ClassicASP
한글 깨짐 변환 ( update. 2018-03-16 04:56 ) Hit.610
195 ClassicASP
194 ClassicASP
페이스북 등 SNS 글 퍼가기 소스 ( write. 2018-02-23 ) Hit.882
193 ClassicASP
TypeLib를 로드할 수 없음 ( write. 2017-12-27 ) Hit.1031
열람중 ClassicASP
파일 다운로드 소스 ( write. 2017-09-13 ) Hit.1394
191 ClassicASP
도메인에 http:// 를 https:// 로 변경하기 ( update. 2018-03-15 02:06 ) Hit.1125
190 ClassicASP
작은따옴표(')문제 ( write. 2016-10-28 ) Hit.2324
189 ClassicASP
이전글 다음글 추가하기 ( write. 2016-08-18 ) Hit.2841
188 ClassicASP
chr 코드표 보기 ( write. 2016-05-28 ) Hit.3453
187 ClassicASP
186 ClassicASP
185 ClassicASP
Function과 Sub의 차이점 ( write. 2016-02-25 ) Hit.3261
184 ClassicASP
183 ClassicASP
182 ClassicASP
[IIS7] 세션(session) 시간 늘리기 ( update. 2016-02-26 ) Hit.6397
181 ClassicASP
180 ClassicASP
Contents.RemoveAll (Session 객체) ( write. 2016-01-22 ) Hit.2548
179 ClassicASP
코드 실행시간 측정하기 ( write. 2016-01-18 ) Hit.2452
178 ClassicASP
특정 IP에서만 보기 ( update. 2018-05-28 18:34 ) Hit.2421
177 ClassicASP
웹페이지 출력하기 ( update. 2016-02-03 ) Hit.2684
176 ClassicASP
이미지 크기 (가로 세로) 구하기 ( write. 2015-08-19 ) Hit.4259
175 ClassicASP
CreateParameter 메서드 (ADO) ( write. 2015-03-25 )   Hit.3553
174 ClassicASP
173 ClassicASP
ABCUpload4 업로드 문제 ( write. 2014-12-03 ) Hit.5932
게시물 검색

회원로그인

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

접속자집계

오늘
1,748
어제
2,000
최대
3,174
전체
4,131,785

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