파일 다운로드 소스 > 온라인강의

본문 바로가기
 
 
 
비즈니스의 시작 비즈명함 ~ 가격, 품질, 배송 3가지 만족을 드리는 비즈명함 / 즉석명함 / 급행서비스 / 서울 전지역 수도권일부 3시간배송

오늘 407
어제 1,993
최대 2,526
전체 3,738,252

최근 방문자

1833
1062
1169
2023
1993
407
19 20 21 22 23 24
온라인강좌 홈 > 온라인강좌 > 온라인강좌

ClassicASP | 파일 다운로드 소스

페이지 정보

작성일2017-09-13 23:26 조회714회 댓글0건

본문


<%
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
열람중
195
194
ClassicASP 작은따옴표(')문제 (wr.2016-10-28) 인기글 Hit.1783
193
192
ClassicASP chr 코드표 보기 (wr.2016-05-28) 인기글 Hit.2901
191
190
189
188
187
186
185
184
183
182
ClassicASP 특정 IP에서만 보기 (wr.2016-01-13) 인기글 Hit.2085
181
ClassicASP 웹페이지 출력하기 (up.2016-02-03) 인기글 Hit.2290
180
179
178
177
ClassicASP ABCUpload4 업로드 문제 (wr.2014-12-03) 인기글 Hit.5419
176
175
174
173
게시물 검색
 
 
상호: 해피정닷컴 대표:정창용 사업자등록번호:119-05-36414 (08394) 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
전화: 070-7600-3500 팩스:02-865-3528 개인정보관리:정창용 mail@happyjung.com 에스크로확인
개인정보취급방침
COPYRIGHT 2001~2018 해피정닷컴. All rights reserved. 통신판매신고:2014-서울구로-0074
 
모바일 버전으로 보기