ASP 文件下载实例

点击下载的地方跳转:

<a href=DownDocs.asp?docs_id=<%=id%> target=print_blank>下载附件</a>

新建一个Downdoc.ASP文件,代码如下
<%   
dim id
dim upload_name,upload_url
if not isempty(request(“docs_id”)) then
    id=cint(request(“docs_id”))  

sql=”select * from “tb” where id=”&id
set rs=server.createobject(“adodb.recordset”)
rs.Open sql,conn,1,2
if rs.EOF or rs.BOF then
else
    if not (isnull(rs(“upload_name”)) or isempty(rs(“upload_name”))) then
       upload_name=trim(rs(“upload_name”))
    end if    
    if not (isnull(rs(“upload_url”)) or isempty(rs(“upload_url”))) then
       upload_url=trim(rs(“upload_url”))
    end if        
    rs.Close
    set rs=nothing
 end if
    ‘response.Write server.MapPath((“../admin/”) &upload_url)
    ‘response.End               
‘取得要下载的文件,如果不为空。就下载
   dim url,trueurl
   ‘url=”下载文件路径和下载文件名”
   dim objStream
   url=upload_url
   fname=upload_name
   trueurl=server.MapPath((“../admin/”) &url)
    ‘response.Write trueurl
   Response.Buffer=true  ‘开启缓存
   ‘response.Write trueurl
   set objStream=server.CreateObject(“adodb.stream”)
   objStream.Type=1 ‘以二进制读取模式
   objStream.Open
   objStream.LoadFromFile trueurl ‘读取文件

   set objFso=server.CreateObject(“scripting.filesystemobject”)
   set fn=objFso.GetFile(trueurl)
   flsize=fn.size
   flname=fname

   
   
   
   
   select case lcase(right(flname,4))
      case “.asf”
      ContentType=”video/x-ms-asf”
      case “.avi”
      ContentType=”video/avi”
      case “.doc”
      ContentType=”application/msword”
      case “.zip”
      ContentType=”application/zip”
      case “.xls”
      ContentType=”application/vnd.ms-excel”
      case “.gif”
      ContentType=”image/gif”
      case “.jpg”,”jpeg”
      ContentType=”image/jpeg”
      case “.wav”
      ContentType=”audio/wav”
      case “.mp3”
      ContentType=”audio/mpeg3″
      case “.mpg”, “mpeg”
      ContentType=”video/mpeg”
      case “.rtf”
      ContentType=”application/rtf”
      case “.htm”,”html”
      ContentType=”text/html”
      case “.txt”
      ContentType=”text/plain”
      case “.pdf”
      ContentType=”application/pdf”
  Case “.ASP”, “.ASA”, “ASPX”, “ASAX”, “.MDB”
        Response.Write “受保护文件,不能下载.”
        Response.End
      case else
      ContentType=”appliation/octet-stream”
   end select

   Response.AddHeader “Content-Disposition”, “attachment; filename=”&flname
   Response.AddHeader “Content-Length”, flsize
   Response.CharSet=”UTF-8″
   Server.ScriptTimeout = 600
   Response.ContentType=ContentType
   Response.BinaryWrite objStream.Read ‘以二进制的方式输出至客户端浏览器
   Response.Flush ‘边缓存边输出
   Response.Clear()
   objStream.Close
   set objStream=nothing
       set fn=nothing
   set objFso=nothing
 end if
%>

如果文件过大提示下载失败,请设置iis中asp限制属性中的大小

《ASP 文件下载实例》

    原文作者:qiufengwuxiu
    原文地址: https://blog.csdn.net/qiufengwuxiu/article/details/79010372
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞