问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求asp制作文件下载及统计下载次数制作

发布网友 发布时间:2024-02-20 10:26

我来回答

2个回答

热心网友 时间:2024-12-04 10:46

  你只要传递这个参数FileName = Request.QueryString( "FileName ")进来就OK了。
  <%
  From_url = Cstr(Request.ServerVariables( "HTTP_REFERER "))
  Serv_url = Cstr(Request.ServerVariables( "SERVER_NAME "))
  if mid(From_url,8,len(Serv_url)) <> Serv_url then
  response.write "非法链接! " '防止盗链
  response.end
  end if

  Function GetFileName(longname) '/folder1/folder2/file.asp=> file.asp
  while instr(longname, "/ ")
  longname = right(longname,len(longname)-1)
  wend
  GetFileName = longname
  End Function

  Dim Stream
  Dim Contents
  Dim FileName
  Dim TrueFileName
  Dim FileExt
  Const adTypeBinary = 1
  FileName = Request.QueryString( "FileName ")
  if FileName = " " Then
  Response.Write "无效文件名! "
  Response.End
  End if
  FileExt = Mid(FileName, InStrRev(FileName, ". ") + 1)
  Select Case UCase(FileExt)
  Case "ASP ", "ASA ", "ASPX ", "ASAX ", "MDB "
  Response.Write "非法操作! "
  Response.End
  End Select
  Response.Clear
  if lcase(right(FileName,3))= "gif " or lcase(right(FileName,3))= "jpg " or lcase(right(FileName,3))= "png " then
  Response.ContentType = "image/* " '对图像文件不出现下载对话框
  else
  Response.ContentType = "application/ms-download "
  end if
  Response.AddHeader "content-disposition ", "attachment; filename= " & GetFileName(Request.QueryString( "FileName "))
  Set Stream = server.CreateObject( "ADODB.Stream ")
  Stream.Type = adTypeBinary
  Stream.Open
  ' 'if lcase(right(FileName,3))= "rar " then '设置pdf类型文件目录
  TrueFileName = "../admin/upsoft/ "& FileName
  ' 'end if
  Stream.LoadFromFile Server.MapPath(TrueFileName)
  ' 'While Not Stream.EOS
  ' 'Response.BinaryWrite Stream.Read(1024 * 64)分64块,下载,这个去掉就可以下多大都可以,加上好像不能超过5M.
  ' 'Wend
  Stream.Close
  Set Stream = Nothing
  Response.Flush
  Response.End
  %>

  下载次数

  download.asp?id=要下载文件的ID编号

  <%

  '连接数据库,代码根据自己的数据库写
  set cn = Server.CreateObject("ADODB.connection")
  cn.open...

  '读取id=request("id")的文件信息
  sql = "select * from downfile where id = "&request("id")
  set rs = Server.CreateObject("ADODB.Recordset")
  rs.open sql,cn,3,1
  '如果文件不存在
  if rs.EOF then
  response.redirect("下载错误信息页面")

  '如果文件存在,读出下列数据
  else
  filepath = rs("filepath") '要下载文件的真实地址
  filedowns = Cint(rs("filedowns")) '要下载文件已经被下载过的次数
  end if
  rs.close
  set rs = nothing
  cn.close
  set cn = nothing

  '将文件下载次数加1
  filedowns = filedowns+1

  '将新的下载次数更新入数据库,如果需要可以连同日期时间一起存起来
  set cn = ....
  ...update

  '转到要下载文件的地址
  response.redirect(filepath)

  %>

  我对ASP也不是很了解,这些也都是在网上找的,觉得不错,未经测试,你试下,看怎样。。。。。。

热心网友 时间:2024-12-04 10:46

你可以去百度视频找 asp教学
有很多够你慢慢看的了
也可以去找教学光盘下载来看
自己学习吧
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么是Medical Literature Analysis and Retrieval System (NLM)的缩 ... 医学工作者的因特网内容简介 2002年的一篇文章英文摘要被《医学文献联机数据库》(MEDLINE)收录,是否... 医学器具medline啥意思 民国市与县的关系是怎样的,市与县分别又是什么? 历代兵制中国民国兵制 冰箱运行时有水流声怎么回事? ud牛郎眼影真假判断 爆闪/没有平替❌ 牛郎眼影真假鉴别方法 鉴别❗️衰败城市牛郎眼影真假,粉质肉眼差距 索尼RX100M6防抖效果如何? 索尼RX100M6的防抖效果怎么样? 微信账户和一样吗 索尼RX100M6在拍摄时防抖效果好吗? ...号在最近24小时内已绑定过3个,已达到限制? 环球有额度吗 微信帐号和一样吗? 关于元旦的诗歌,是画手抄报用的,请今天快回答,急急急!一定要长一点的... 如何取消微信停车通知,别人绑定我车牌号在他里,我出入停车场别人... 索尼RX100M6防抖效果如何? 一年内怎么改第二次 ...请从中选择一两句你最喜欢的话,并说说喜欢的原因。 ...号在最近24小时内绑定过三个,已达到限制,...24小时后可以再次... 苹果手机怎样第二次更改 和微信帐号是一个吗 一年可以改几次啊?是一年一次吗 怎么用PHP统计下载次数 手机号重新注册了一个,原来的咋找回来?? 如果重新注册一个之前的还可以找得回来吗? 一年内第二次强制修改 微信重新注册了,怎么找回以前那个? 一年内怎么改第二次 索尼RX100M6好用吗 租赁期限内承租人能否转租?3 光遇冥想任务怎么崩了 与微信帐号是一回事吗 承租人可以转租房屋吗2 两个微信绑定了同一个手机号,怎么找到原? 热播剧大唐荣耀林致被谁玷污了?慕容林致大结局好看吗 微信帐号和一样吗? 怎么一年内修改两次? 一年内怎么修改第二次? 没有手机号光有怎么添加? 一年改2次的办法 没有手机号光有怎么添加? 没有手机号光有怎么添加? 大唐荣耀王妃为什么会被刻娼 一年改2次的办法 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 微信账号和是一样吗